@oh-my-pi/pi-catalog 16.3.6 → 16.3.8
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/CHANGELOG.md +6 -0
- package/dist/types/build.d.ts +1 -1
- package/dist/types/compat/anthropic.d.ts +1 -1
- package/dist/types/compat/devin.d.ts +1 -1
- package/dist/types/compat/openai.d.ts +8 -8
- package/dist/types/discovery/antigravity.d.ts +2 -2
- package/dist/types/discovery/codex.d.ts +1 -1
- package/dist/types/discovery/cursor.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/analytics_pb/analytics_pb.d.ts +4 -4
- package/dist/types/discovery/devin-gen/exa/api_server_pb/api_server_pb.d.ts +8 -8
- package/dist/types/discovery/devin-gen/exa/auth_pb/auth_pb.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/auto_cascade_common_pb/auto_cascade_common_pb.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/cascade_plugins_pb/cascade_plugins_pb.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/chat_pb/chat_pb.d.ts +2 -2
- package/dist/types/discovery/devin-gen/exa/code_edit/code_edit_pb/code_edit_pb.d.ts +3 -3
- package/dist/types/discovery/devin-gen/exa/context_module_pb/context_module_pb.d.ts +2 -2
- package/dist/types/discovery/devin-gen/exa/cortex_pb/cortex_pb.d.ts +6 -6
- package/dist/types/discovery/devin-gen/exa/diff_action_pb/diff_action_pb.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/index_pb/index_pb.d.ts +1 -1
- package/dist/types/discovery/devin-gen/exa/knowledge_base_pb/knowledge_base_pb.d.ts +3 -3
- package/dist/types/discovery/devin-gen/exa/language_server_pb/language_server_pb.d.ts +11 -11
- package/dist/types/discovery/devin-gen/exa/opensearch_clients_pb/opensearch_clients_pb.d.ts +3 -3
- package/dist/types/discovery/devin-gen/exa/prompt_pb/prompt_pb.d.ts +5 -5
- package/dist/types/discovery/devin.d.ts +1 -1
- package/dist/types/discovery/gemini.d.ts +1 -1
- package/dist/types/discovery/gitlab-duo-workflow.d.ts +1 -1
- package/dist/types/discovery/index.d.ts +5 -5
- package/dist/types/discovery/openai-compatible.d.ts +1 -1
- package/dist/types/identity/bundled.d.ts +1 -1
- package/dist/types/identity/family.d.ts +9 -2
- package/dist/types/identity/index.d.ts +8 -8
- package/dist/types/identity/reference.d.ts +1 -1
- package/dist/types/index.d.ts +17 -17
- package/dist/types/model-cache.d.ts +1 -1
- package/dist/types/model-manager.d.ts +1 -1
- package/dist/types/model-thinking.d.ts +2 -2
- package/dist/types/models.d.ts +1 -1
- package/dist/types/provider-models/bundled-references.d.ts +2 -2
- package/dist/types/provider-models/descriptor-types.d.ts +2 -2
- package/dist/types/provider-models/descriptors.d.ts +52 -52
- package/dist/types/provider-models/google.d.ts +2 -2
- package/dist/types/provider-models/index.d.ts +6 -6
- package/dist/types/provider-models/ollama.d.ts +2 -2
- package/dist/types/provider-models/openai-compat.d.ts +5 -3
- package/dist/types/provider-models/special.d.ts +3 -3
- package/dist/types/types.d.ts +16 -7
- package/dist/types/variant-collapse.d.ts +2 -2
- package/package.json +3 -3
- package/src/compat/openai.ts +8 -9
- package/src/identity/family.ts +15 -4
- package/src/models.json +370 -108
- package/src/models.ts +4 -3
- package/src/provider-models/openai-compat.ts +39 -6
- package/src/types.ts +14 -5
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* half (env keys, OAuth login/refresh) stays in the pi-ai registry, which
|
|
6
6
|
* type-checks itself against `KnownProvider` from this table.
|
|
7
7
|
*/
|
|
8
|
-
import type { ModelManagerConfig, ProviderCatalogEntry, ProviderDescriptor } from "./descriptor-types";
|
|
8
|
+
import type { ModelManagerConfig, ProviderCatalogEntry, ProviderDescriptor } from "./descriptor-types.js";
|
|
9
9
|
export declare const CATALOG_PROVIDERS: readonly [{
|
|
10
10
|
readonly id: "aimlapi";
|
|
11
11
|
readonly defaultModel: "gpt-5.5-2026-04-23";
|
|
12
12
|
readonly envVars: readonly ["AIMLAPI_API_KEY"];
|
|
13
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
13
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
14
14
|
readonly dynamicModelsAuthoritative: true;
|
|
15
15
|
readonly catalogDiscovery: {
|
|
16
16
|
readonly label: "AIML API";
|
|
@@ -19,7 +19,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
19
19
|
readonly id: "alibaba-coding-plan";
|
|
20
20
|
readonly defaultModel: "qwen3.7-plus";
|
|
21
21
|
readonly envVars: readonly ["ALIBABA_CODING_PLAN_API_KEY"];
|
|
22
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
22
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
23
23
|
readonly catalogDiscovery: {
|
|
24
24
|
readonly label: "Alibaba Coding Plan";
|
|
25
25
|
};
|
|
@@ -27,7 +27,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
27
27
|
readonly id: "baseten";
|
|
28
28
|
readonly defaultModel: "moonshotai/Kimi-K2.7-Code";
|
|
29
29
|
readonly envVars: readonly ["BASETEN_API_KEY"];
|
|
30
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
30
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
31
31
|
readonly dynamicModelsAuthoritative: true;
|
|
32
32
|
readonly catalogDiscovery: {
|
|
33
33
|
readonly label: "Baseten";
|
|
@@ -39,7 +39,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
39
39
|
readonly id: "anthropic";
|
|
40
40
|
readonly defaultModel: "claude-opus-4-8";
|
|
41
41
|
readonly envVars: readonly ["ANTHROPIC_API_KEY"];
|
|
42
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
42
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"anthropic-messages", unknown>;
|
|
43
43
|
readonly catalogDiscovery: {
|
|
44
44
|
readonly label: "Anthropic";
|
|
45
45
|
};
|
|
@@ -51,7 +51,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
51
51
|
readonly id: "cerebras";
|
|
52
52
|
readonly defaultModel: "zai-glm-4.7";
|
|
53
53
|
readonly envVars: readonly ["CEREBRAS_API_KEY"];
|
|
54
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
54
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
55
55
|
readonly catalogDiscovery: {
|
|
56
56
|
readonly label: "Cerebras";
|
|
57
57
|
};
|
|
@@ -59,7 +59,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
59
59
|
readonly id: "cloudflare-ai-gateway";
|
|
60
60
|
readonly defaultModel: "anthropic/claude-opus-4-8";
|
|
61
61
|
readonly envVars: readonly ["CLOUDFLARE_AI_GATEWAY_API_KEY"];
|
|
62
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
62
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"anthropic-messages", unknown>;
|
|
63
63
|
readonly catalogDiscovery: {
|
|
64
64
|
readonly label: "Cloudflare AI Gateway";
|
|
65
65
|
};
|
|
@@ -67,7 +67,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
67
67
|
readonly id: "cursor";
|
|
68
68
|
readonly defaultModel: "claude-4.6-opus-high";
|
|
69
69
|
readonly envVars: readonly ["CURSOR_ACCESS_TOKEN"];
|
|
70
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
70
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"cursor-agent", unknown>;
|
|
71
71
|
readonly catalogDiscovery: {
|
|
72
72
|
readonly label: "Cursor";
|
|
73
73
|
readonly envVars: readonly ["CURSOR_API_KEY"];
|
|
@@ -77,7 +77,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
77
77
|
readonly id: "deepseek";
|
|
78
78
|
readonly defaultModel: "deepseek-v4-pro";
|
|
79
79
|
readonly envVars: readonly ["DEEPSEEK_API_KEY"];
|
|
80
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
80
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
81
81
|
readonly catalogDiscovery: {
|
|
82
82
|
readonly label: "DeepSeek";
|
|
83
83
|
};
|
|
@@ -85,7 +85,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
85
85
|
readonly id: "devin";
|
|
86
86
|
readonly defaultModel: "swe-1-6";
|
|
87
87
|
readonly envVars: readonly ["DEVIN_API_KEY"];
|
|
88
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
88
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"devin-agent", unknown>;
|
|
89
89
|
readonly dynamicModelsAuthoritative: true;
|
|
90
90
|
readonly catalogDiscovery: {
|
|
91
91
|
readonly label: "Devin";
|
|
@@ -96,12 +96,12 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
96
96
|
readonly id: "firepass";
|
|
97
97
|
readonly defaultModel: "kimi-k2.6-turbo";
|
|
98
98
|
readonly envVars: readonly ["FIREPASS_API_KEY"];
|
|
99
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
99
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
100
100
|
}, {
|
|
101
101
|
readonly id: "fireworks";
|
|
102
102
|
readonly defaultModel: "kimi-k2.7-code";
|
|
103
103
|
readonly envVars: readonly ["FIREWORKS_API_KEY"];
|
|
104
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
104
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
105
105
|
readonly catalogDiscovery: {
|
|
106
106
|
readonly label: "Fireworks";
|
|
107
107
|
};
|
|
@@ -109,7 +109,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
109
109
|
readonly id: "github-copilot";
|
|
110
110
|
readonly defaultModel: "gpt-5.5";
|
|
111
111
|
readonly envVars: readonly ["COPILOT_GITHUB_TOKEN"];
|
|
112
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
112
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<import("../index.js").Api, unknown>;
|
|
113
113
|
}, {
|
|
114
114
|
readonly id: "gitlab-duo";
|
|
115
115
|
readonly defaultModel: "duo-chat-opus-4-6";
|
|
@@ -118,13 +118,13 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
118
118
|
readonly id: "gitlab-duo-agent";
|
|
119
119
|
readonly defaultModel: "claude_sonnet_4_6_vertex";
|
|
120
120
|
readonly envVars: readonly ["GITLAB_TOKEN"];
|
|
121
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
121
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"gitlab-duo-agent", unknown>;
|
|
122
122
|
readonly dynamicModelsAuthoritative: true;
|
|
123
123
|
}, {
|
|
124
124
|
readonly id: "google";
|
|
125
125
|
readonly defaultModel: "gemini-3.1-pro-preview";
|
|
126
126
|
readonly envVars: readonly ["GEMINI_API_KEY"];
|
|
127
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
127
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"google-generative-ai", unknown>;
|
|
128
128
|
}, {
|
|
129
129
|
readonly id: "google-antigravity";
|
|
130
130
|
readonly defaultModel: "gemini-3.1-pro";
|
|
@@ -136,18 +136,18 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
136
136
|
}, {
|
|
137
137
|
readonly id: "google-vertex";
|
|
138
138
|
readonly defaultModel: "gemini-3.1-pro-preview";
|
|
139
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
139
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<import("../index.js").Api, unknown>;
|
|
140
140
|
readonly allowUnauthenticated: true;
|
|
141
141
|
}, {
|
|
142
142
|
readonly id: "groq";
|
|
143
143
|
readonly defaultModel: "openai/gpt-oss-120b";
|
|
144
144
|
readonly envVars: readonly ["GROQ_API_KEY"];
|
|
145
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
145
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
146
146
|
}, {
|
|
147
147
|
readonly id: "huggingface";
|
|
148
148
|
readonly defaultModel: "deepseek-ai/DeepSeek-R1";
|
|
149
149
|
readonly envVars: readonly ["HUGGINGFACE_HUB_TOKEN", "HF_TOKEN"];
|
|
150
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
150
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
151
151
|
readonly catalogDiscovery: {
|
|
152
152
|
readonly label: "Hugging Face";
|
|
153
153
|
};
|
|
@@ -155,7 +155,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
155
155
|
readonly id: "kilo";
|
|
156
156
|
readonly defaultModel: "anthropic/claude-opus-4.8";
|
|
157
157
|
readonly envVars: readonly ["KILO_API_KEY"];
|
|
158
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
158
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
159
159
|
readonly catalogDiscovery: {
|
|
160
160
|
readonly label: "Kilo Gateway";
|
|
161
161
|
readonly allowUnauthenticated: true;
|
|
@@ -163,7 +163,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
163
163
|
}, {
|
|
164
164
|
readonly id: "kimi-code";
|
|
165
165
|
readonly defaultModel: "kimi-for-coding";
|
|
166
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
166
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
167
167
|
readonly catalogDiscovery: {
|
|
168
168
|
readonly label: "Kimi Code";
|
|
169
169
|
readonly envVars: readonly ["KIMI_API_KEY"];
|
|
@@ -172,7 +172,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
172
172
|
readonly id: "litellm";
|
|
173
173
|
readonly defaultModel: "claude-opus-4-8";
|
|
174
174
|
readonly envVars: readonly ["LITELLM_API_KEY"];
|
|
175
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
175
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
176
176
|
readonly catalogDiscovery: {
|
|
177
177
|
readonly label: "LiteLLM";
|
|
178
178
|
readonly allowUnauthenticated: true;
|
|
@@ -181,7 +181,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
181
181
|
readonly id: "lm-studio";
|
|
182
182
|
readonly defaultModel: "llama-3-8b";
|
|
183
183
|
readonly envVars: readonly ["LM_STUDIO_API_KEY"];
|
|
184
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
184
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
185
185
|
readonly allowUnauthenticated: true;
|
|
186
186
|
}, {
|
|
187
187
|
readonly id: "minimax";
|
|
@@ -199,12 +199,12 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
199
199
|
readonly id: "mistral";
|
|
200
200
|
readonly defaultModel: "devstral-medium-latest";
|
|
201
201
|
readonly envVars: readonly ["MISTRAL_API_KEY"];
|
|
202
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
202
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
203
203
|
}, {
|
|
204
204
|
readonly id: "moonshot";
|
|
205
205
|
readonly defaultModel: "kimi-k2.7-code";
|
|
206
206
|
readonly envVars: readonly ["MOONSHOT_API_KEY", "KIMI_API_KEY"];
|
|
207
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
207
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
208
208
|
readonly catalogDiscovery: {
|
|
209
209
|
readonly label: "Moonshot";
|
|
210
210
|
};
|
|
@@ -212,7 +212,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
212
212
|
readonly id: "nanogpt";
|
|
213
213
|
readonly defaultModel: "openai/gpt-5.5";
|
|
214
214
|
readonly envVars: readonly ["NANO_GPT_API_KEY"];
|
|
215
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
215
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
216
216
|
readonly catalogDiscovery: {
|
|
217
217
|
readonly label: "NanoGPT";
|
|
218
218
|
};
|
|
@@ -220,7 +220,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
220
220
|
readonly id: "nvidia";
|
|
221
221
|
readonly defaultModel: "nvidia/llama-3.1-nemotron-70b-instruct";
|
|
222
222
|
readonly envVars: readonly ["NVIDIA_API_KEY"];
|
|
223
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
223
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
224
224
|
readonly catalogDiscovery: {
|
|
225
225
|
readonly label: "NVIDIA";
|
|
226
226
|
};
|
|
@@ -228,13 +228,13 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
228
228
|
readonly id: "ollama";
|
|
229
229
|
readonly defaultModel: "gpt-oss:20b";
|
|
230
230
|
readonly envVars: readonly ["OLLAMA_API_KEY"];
|
|
231
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
231
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-responses", unknown>;
|
|
232
232
|
readonly allowUnauthenticated: true;
|
|
233
233
|
}, {
|
|
234
234
|
readonly id: "ollama-cloud";
|
|
235
235
|
readonly defaultModel: "gpt-oss:120b";
|
|
236
236
|
readonly envVars: readonly ["OLLAMA_CLOUD_API_KEY"];
|
|
237
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
237
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"ollama-chat", unknown>;
|
|
238
238
|
readonly catalogDiscovery: {
|
|
239
239
|
readonly label: "Ollama Cloud";
|
|
240
240
|
readonly oauthProvider: "ollama-cloud";
|
|
@@ -243,7 +243,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
243
243
|
readonly id: "openai";
|
|
244
244
|
readonly defaultModel: "gpt-5.5";
|
|
245
245
|
readonly envVars: readonly ["OPENAI_API_KEY"];
|
|
246
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
246
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-responses", unknown>;
|
|
247
247
|
}, {
|
|
248
248
|
readonly id: "openai-codex";
|
|
249
249
|
readonly defaultModel: "gpt-5.5";
|
|
@@ -253,17 +253,17 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
253
253
|
readonly id: "opencode-go";
|
|
254
254
|
readonly defaultModel: "kimi-k2.7-code";
|
|
255
255
|
readonly envVars: readonly ["OPENCODE_API_KEY"];
|
|
256
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
256
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<import("../index.js").Api, unknown>;
|
|
257
257
|
}, {
|
|
258
258
|
readonly id: "opencode-zen";
|
|
259
259
|
readonly defaultModel: "claude-opus-4-8";
|
|
260
260
|
readonly envVars: readonly ["OPENCODE_API_KEY"];
|
|
261
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
261
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<import("../index.js").Api, unknown>;
|
|
262
262
|
}, {
|
|
263
263
|
readonly id: "openrouter";
|
|
264
264
|
readonly defaultModel: "openai/gpt-5.5";
|
|
265
265
|
readonly envVars: readonly ["OPENROUTER_API_KEY"];
|
|
266
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
266
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openrouter", unknown>;
|
|
267
267
|
readonly catalogDiscovery: {
|
|
268
268
|
readonly label: "OpenRouter";
|
|
269
269
|
readonly allowUnauthenticated: true;
|
|
@@ -272,7 +272,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
272
272
|
readonly id: "qianfan";
|
|
273
273
|
readonly defaultModel: "deepseek-v3.2";
|
|
274
274
|
readonly envVars: readonly ["QIANFAN_API_KEY"];
|
|
275
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
275
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
276
276
|
readonly catalogDiscovery: {
|
|
277
277
|
readonly label: "Qianfan";
|
|
278
278
|
};
|
|
@@ -280,7 +280,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
280
280
|
readonly id: "qwen-portal";
|
|
281
281
|
readonly defaultModel: "coder-model";
|
|
282
282
|
readonly envVars: readonly ["QWEN_OAUTH_TOKEN", "QWEN_PORTAL_API_KEY"];
|
|
283
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
283
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
284
284
|
readonly catalogDiscovery: {
|
|
285
285
|
readonly label: "Qwen Portal";
|
|
286
286
|
readonly oauthProvider: "qwen-portal";
|
|
@@ -289,7 +289,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
289
289
|
readonly id: "sakana";
|
|
290
290
|
readonly defaultModel: "fugu";
|
|
291
291
|
readonly envVars: readonly ["SAKANA_API_KEY", "FUGU_API_KEY"];
|
|
292
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
292
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-responses", unknown>;
|
|
293
293
|
readonly dynamicModelsAuthoritative: true;
|
|
294
294
|
readonly catalogDiscovery: {
|
|
295
295
|
readonly label: "Sakana AI";
|
|
@@ -298,7 +298,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
298
298
|
readonly id: "synthetic";
|
|
299
299
|
readonly defaultModel: "hf:zai-org/GLM-5.1";
|
|
300
300
|
readonly envVars: readonly ["SYNTHETIC_API_KEY"];
|
|
301
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
301
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
302
302
|
readonly dynamicModelsAuthoritative: true;
|
|
303
303
|
readonly catalogDiscovery: {
|
|
304
304
|
readonly label: "Synthetic";
|
|
@@ -307,7 +307,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
307
307
|
readonly id: "together";
|
|
308
308
|
readonly defaultModel: "moonshotai/Kimi-K2.7-Code";
|
|
309
309
|
readonly envVars: readonly ["TOGETHER_API_KEY"];
|
|
310
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
310
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
311
311
|
readonly catalogDiscovery: {
|
|
312
312
|
readonly label: "Together";
|
|
313
313
|
};
|
|
@@ -315,7 +315,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
315
315
|
readonly id: "umans";
|
|
316
316
|
readonly defaultModel: "umans-coder";
|
|
317
317
|
readonly envVars: readonly ["UMANS_AI_CODING_PLAN_API_KEY"];
|
|
318
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
318
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"anthropic-messages", unknown>;
|
|
319
319
|
readonly dynamicModelsAuthoritative: true;
|
|
320
320
|
readonly catalogDiscovery: {
|
|
321
321
|
readonly label: "Umans AI Coding Plan";
|
|
@@ -325,7 +325,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
325
325
|
readonly id: "venice";
|
|
326
326
|
readonly defaultModel: "llama-3.3-70b";
|
|
327
327
|
readonly envVars: readonly ["VENICE_API_KEY"];
|
|
328
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
328
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
329
329
|
readonly catalogDiscovery: {
|
|
330
330
|
readonly label: "Venice";
|
|
331
331
|
readonly allowUnauthenticated: true;
|
|
@@ -334,7 +334,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
334
334
|
readonly id: "vercel-ai-gateway";
|
|
335
335
|
readonly defaultModel: "anthropic/claude-opus-4.8";
|
|
336
336
|
readonly envVars: readonly ["AI_GATEWAY_API_KEY"];
|
|
337
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
337
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"anthropic-messages", unknown>;
|
|
338
338
|
readonly catalogDiscovery: {
|
|
339
339
|
readonly label: "Vercel AI Gateway";
|
|
340
340
|
readonly envVars: readonly ["VERCEL_AI_GATEWAY_API_KEY"];
|
|
@@ -344,7 +344,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
344
344
|
readonly id: "vllm";
|
|
345
345
|
readonly defaultModel: "gpt-oss-20b";
|
|
346
346
|
readonly envVars: readonly ["VLLM_API_KEY"];
|
|
347
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
347
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
348
348
|
readonly catalogDiscovery: {
|
|
349
349
|
readonly label: "vLLM";
|
|
350
350
|
readonly allowUnauthenticated: true;
|
|
@@ -353,7 +353,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
353
353
|
readonly id: "wafer-serverless";
|
|
354
354
|
readonly defaultModel: "GLM-5.1";
|
|
355
355
|
readonly envVars: readonly ["WAFER_SERVERLESS_API_KEY"];
|
|
356
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
356
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
357
357
|
readonly catalogDiscovery: {
|
|
358
358
|
readonly label: "Wafer Serverless";
|
|
359
359
|
readonly oauthProvider: "wafer-serverless";
|
|
@@ -362,7 +362,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
362
362
|
readonly id: "coreweave";
|
|
363
363
|
readonly defaultModel: "openai/gpt-oss-120b";
|
|
364
364
|
readonly envVars: readonly ["COREWEAVE_API_KEY", "WANDB_API_KEY"];
|
|
365
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
365
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
366
366
|
readonly catalogDiscovery: {
|
|
367
367
|
readonly label: "CoreWeave Serverless Inference";
|
|
368
368
|
};
|
|
@@ -370,12 +370,12 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
370
370
|
readonly id: "xai";
|
|
371
371
|
readonly defaultModel: "grok-4-fast-non-reasoning";
|
|
372
372
|
readonly envVars: readonly ["XAI_API_KEY"];
|
|
373
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
373
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
374
374
|
}, {
|
|
375
375
|
readonly id: "xai-oauth";
|
|
376
376
|
readonly defaultModel: "grok-4.3";
|
|
377
377
|
readonly envVars: readonly ["XAI_OAUTH_TOKEN", "XAI_API_KEY"];
|
|
378
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
378
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-responses", unknown>;
|
|
379
379
|
readonly catalogDiscovery: {
|
|
380
380
|
readonly label: "xAI Grok OAuth (SuperGrok)";
|
|
381
381
|
readonly oauthProvider: "xai-oauth";
|
|
@@ -384,7 +384,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
384
384
|
readonly id: "xiaomi";
|
|
385
385
|
readonly defaultModel: "mimo-v2.5";
|
|
386
386
|
readonly envVars: readonly ["XIAOMI_API_KEY"];
|
|
387
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
387
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
388
388
|
readonly catalogDiscovery: {
|
|
389
389
|
readonly label: "Xiaomi";
|
|
390
390
|
};
|
|
@@ -392,22 +392,22 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
392
392
|
readonly id: "xiaomi-token-plan-ams";
|
|
393
393
|
readonly defaultModel: "mimo-v2.5";
|
|
394
394
|
readonly envVars: readonly ["XIAOMI_TOKEN_PLAN_AMS_API_KEY"];
|
|
395
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
395
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
396
396
|
}, {
|
|
397
397
|
readonly id: "xiaomi-token-plan-cn";
|
|
398
398
|
readonly defaultModel: "mimo-v2.5";
|
|
399
399
|
readonly envVars: readonly ["XIAOMI_TOKEN_PLAN_CN_API_KEY"];
|
|
400
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
400
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
401
401
|
}, {
|
|
402
402
|
readonly id: "xiaomi-token-plan-sgp";
|
|
403
403
|
readonly defaultModel: "mimo-v2.5";
|
|
404
404
|
readonly envVars: readonly ["XIAOMI_TOKEN_PLAN_SGP_API_KEY"];
|
|
405
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
405
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
406
406
|
}, {
|
|
407
407
|
readonly id: "zai";
|
|
408
408
|
readonly defaultModel: "glm-5.2";
|
|
409
409
|
readonly envVars: readonly ["ZAI_API_KEY"];
|
|
410
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
410
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"anthropic-messages", unknown>;
|
|
411
411
|
readonly catalogDiscovery: {
|
|
412
412
|
readonly label: "zAI";
|
|
413
413
|
};
|
|
@@ -415,7 +415,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
415
415
|
readonly id: "zenmux";
|
|
416
416
|
readonly defaultModel: "anthropic/claude-opus-4.8";
|
|
417
417
|
readonly envVars: readonly ["ZENMUX_API_KEY"];
|
|
418
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
418
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<import("../index.js").Api, unknown>;
|
|
419
419
|
readonly allowUnauthenticated: true;
|
|
420
420
|
readonly catalogDiscovery: {
|
|
421
421
|
readonly label: "ZenMux";
|
|
@@ -425,7 +425,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
425
425
|
readonly id: "zhipu-coding-plan";
|
|
426
426
|
readonly defaultModel: "glm-5.1";
|
|
427
427
|
readonly envVars: readonly ["ZHIPU_API_KEY"];
|
|
428
|
-
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("
|
|
428
|
+
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
429
429
|
readonly dynamicModelsAuthoritative: true;
|
|
430
430
|
readonly catalogDiscovery: {
|
|
431
431
|
readonly label: "Zhipu Coding Plan";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ModelManagerOptions } from "../model-manager";
|
|
2
|
-
import type { FetchImpl } from "../types";
|
|
1
|
+
import type { ModelManagerOptions } from "../model-manager.js";
|
|
2
|
+
import type { FetchImpl } from "../types.js";
|
|
3
3
|
export interface GoogleModelManagerConfig {
|
|
4
4
|
apiKey?: string;
|
|
5
5
|
fetch?: FetchImpl;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from "./descriptor-types";
|
|
2
|
-
export * from "./descriptors";
|
|
3
|
-
export * from "./google";
|
|
4
|
-
export * from "./ollama";
|
|
5
|
-
export * from "./openai-compat";
|
|
6
|
-
export * from "./special";
|
|
1
|
+
export * from "./descriptor-types.js";
|
|
2
|
+
export * from "./descriptors.js";
|
|
3
|
+
export * from "./google.js";
|
|
4
|
+
export * from "./ollama.js";
|
|
5
|
+
export * from "./openai-compat.js";
|
|
6
|
+
export * from "./special.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ModelManagerOptions } from "../model-manager";
|
|
2
|
-
import type { FetchImpl } from "../types";
|
|
1
|
+
import type { ModelManagerOptions } from "../model-manager.js";
|
|
2
|
+
import type { FetchImpl } from "../types.js";
|
|
3
3
|
export interface OllamaCloudModelManagerConfig {
|
|
4
4
|
apiKey?: string;
|
|
5
5
|
baseUrl?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ModelManagerOptions } from "../model-manager";
|
|
2
|
-
import { getBundledModels } from "../models";
|
|
3
|
-
import type { Api, FetchImpl, ModelSpec, Provider } from "../types";
|
|
1
|
+
import type { ModelManagerOptions } from "../model-manager.js";
|
|
2
|
+
import { getBundledModels } from "../models.js";
|
|
3
|
+
import type { Api, FetchImpl, ModelSpec, Provider } from "../types.js";
|
|
4
4
|
export interface ModelsDevModel {
|
|
5
5
|
id?: string;
|
|
6
6
|
name?: string;
|
|
@@ -217,6 +217,8 @@ export interface WaferModelManagerConfig {
|
|
|
217
217
|
baseUrl?: string;
|
|
218
218
|
fetch?: FetchImpl;
|
|
219
219
|
}
|
|
220
|
+
type WaferThinkingFormat = "zai" | "qwen";
|
|
221
|
+
export declare function resolveWaferServerlessThinkingFormat(modelId: string, upstreamProvider: unknown): WaferThinkingFormat | undefined;
|
|
220
222
|
export declare function waferServerlessModelManagerOptions(config?: WaferModelManagerConfig): ModelManagerOptions<"openai-completions">;
|
|
221
223
|
export interface MistralModelManagerConfig {
|
|
222
224
|
apiKey?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DevinModelDiscoveryOptions } from "../discovery/devin";
|
|
2
|
-
import type { ModelManagerOptions } from "../model-manager";
|
|
3
|
-
import type { FetchImpl } from "../types";
|
|
1
|
+
import type { DevinModelDiscoveryOptions } from "../discovery/devin.js";
|
|
2
|
+
import type { ModelManagerOptions } from "../model-manager.js";
|
|
3
|
+
import type { FetchImpl } from "../types.js";
|
|
4
4
|
export interface OpenAICodexModelManagerConfig {
|
|
5
5
|
accessToken?: string;
|
|
6
6
|
accountId?: string;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Effort } from "./effort";
|
|
1
|
+
import type { Effort } from "./effort.js";
|
|
2
2
|
export type { FetchImpl } from "@oh-my-pi/pi-utils";
|
|
3
|
-
export type { KnownProvider } from "./provider-models/descriptors";
|
|
3
|
+
export type { KnownProvider } from "./provider-models/descriptors.js";
|
|
4
4
|
export type KnownApi = "openai-completions" | "openai-responses" | "openrouter" | "openai-codex-responses" | "azure-openai-responses" | "anthropic-messages" | "bedrock-converse-stream" | "google-generative-ai" | "google-gemini-cli" | "google-vertex" | "ollama-chat" | "cursor-agent" | "gitlab-duo-agent" | "devin-agent";
|
|
5
5
|
export type Api = KnownApi | (string & {});
|
|
6
6
|
/** Canonical thinking transport used by a model. */
|
|
@@ -65,16 +65,25 @@ export type ThinkingBudgets = {
|
|
|
65
65
|
[key in Effort]?: number;
|
|
66
66
|
};
|
|
67
67
|
export interface Usage {
|
|
68
|
-
/** Non-cached input tokens (matches the bucket the provider bills as new input). */
|
|
68
|
+
/** Non-cached conversation input tokens (matches the bucket the provider bills as new input). */
|
|
69
69
|
input: number;
|
|
70
|
-
/** Total output tokens for the turn, including thinking, assistant text, and tool-call argument tokens. */
|
|
70
|
+
/** Total conversation output tokens for the turn, including thinking, assistant text, and tool-call argument tokens. */
|
|
71
71
|
output: number;
|
|
72
|
-
/**
|
|
72
|
+
/** Conversation tokens read from the prompt cache. */
|
|
73
73
|
cacheRead: number;
|
|
74
|
-
/**
|
|
74
|
+
/** Conversation tokens written to the prompt cache (cache creation). */
|
|
75
75
|
cacheWrite: number;
|
|
76
|
-
/** Sum of input + output + cacheRead + cacheWrite. */
|
|
76
|
+
/** Sum of input + output + cacheRead + cacheWrite plus provider-side orchestration tokens when reported. */
|
|
77
77
|
totalTokens: number;
|
|
78
|
+
/** Provider-side orchestration tokens, billed but not part of the conversation prompt/cache buckets. */
|
|
79
|
+
orchestration?: {
|
|
80
|
+
/** Non-cached orchestration input tokens. */
|
|
81
|
+
input?: number;
|
|
82
|
+
/** Orchestration tokens read from provider-side cache. */
|
|
83
|
+
cacheRead?: number;
|
|
84
|
+
/** Orchestration output tokens. */
|
|
85
|
+
output?: number;
|
|
86
|
+
};
|
|
78
87
|
/** Copilot premium-request counter, when applicable. */
|
|
79
88
|
premiumRequests?: number;
|
|
80
89
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Effort } from "./effort";
|
|
2
|
-
import type { Api, Model, ModelSpec, Provider, ThinkingConfig } from "./types";
|
|
1
|
+
import { Effort } from "./effort.js";
|
|
2
|
+
import type { Api, Model, ModelSpec, Provider, ThinkingConfig } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Structural bound for collapse inputs: both raw `ModelSpec`s and built
|
|
5
5
|
* `Model`s qualify. (`Model.compat` is the resolved record, not the sparse
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "16.3.
|
|
4
|
+
"version": "16.3.8",
|
|
5
5
|
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@bufbuild/protobuf": "^2.12.0",
|
|
37
|
-
"@oh-my-pi/pi-utils": "16.3.
|
|
37
|
+
"@oh-my-pi/pi-utils": "16.3.8",
|
|
38
38
|
"arktype": "^2.2.0",
|
|
39
39
|
"zod": "^4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "16.3.
|
|
42
|
+
"@oh-my-pi/pi-ai": "16.3.8",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/compat/openai.ts
CHANGED
|
@@ -586,13 +586,13 @@ interface OpenAIResponsesSpecLike {
|
|
|
586
586
|
}
|
|
587
587
|
|
|
588
588
|
/**
|
|
589
|
-
* Build the resolved Responses-API compat record.
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
* as
|
|
594
|
-
*
|
|
595
|
-
*
|
|
589
|
+
* Build the resolved Responses-API compat record. Most shared OpenAI-compatible
|
|
590
|
+
* capability defaults intentionally mirror chat-completions, while Responses-
|
|
591
|
+
* only behavior (developer role, prompt cache, pairing strictness, image detail)
|
|
592
|
+
* keeps endpoint-specific detection. Azure is detected by provider id as well
|
|
593
|
+
* as URL — bundled `azure` models carry no baseUrl (the deployment host is per-
|
|
594
|
+
* resource, resolved at runtime) — while OpenAI/Copilot developer-role and
|
|
595
|
+
* prompt-cache detection stay URL-keyed, as the historical call sites were.
|
|
596
596
|
*/
|
|
597
597
|
export function buildOpenAIResponsesCompat(spec: OpenAIResponsesSpecLike): ResolvedOpenAIResponsesCompat {
|
|
598
598
|
const baseUrl = spec.baseUrl ?? "";
|
|
@@ -611,8 +611,7 @@ export function buildOpenAIResponsesCompat(spec: OpenAIResponsesSpecLike): Resol
|
|
|
611
611
|
|
|
612
612
|
const compat: ResolvedOpenAIResponsesCompat = {
|
|
613
613
|
supportsDeveloperRole: isAzure || isOpenAIUrl || hostMatchesUrl(baseUrl, "githubCopilot"),
|
|
614
|
-
supportsStrictMode:
|
|
615
|
-
spec.provider === "openai" || isAzure || spec.provider === "github-copilot" || isOpenRouter || isOpenAIUrl,
|
|
614
|
+
supportsStrictMode: isAzure || detectStrictModeSupport(spec.provider, baseUrl),
|
|
616
615
|
supportsReasoningEffort: spec.provider !== "xai-oauth" || isGrokReasoningEffortCapable(id),
|
|
617
616
|
supportsLongPromptCacheRetention: isOpenAIUrl,
|
|
618
617
|
// Azure OpenAI and GitHub Copilot Responses paths require tool results
|
package/src/identity/family.ts
CHANGED
|
@@ -41,9 +41,16 @@ export const isKimiK26ModelId = memo((modelId: string): boolean => {
|
|
|
41
41
|
return /(^|\/)kimi-k2(?:\.6|p6)(?:[-:]|$)/i.test(modelId);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Claude ids in any namespace form: bare (`claude-*`), path-namespaced
|
|
46
|
+
* (`anthropic/claude.x`), or dot-prefixed (`us.anthropic.claude-…`,
|
|
47
|
+
* `global.anthropic.claude-…`, `au.anthropic.claude-…` — Bedrock cross-region
|
|
48
|
+
* inference profiles). Necessary because {@link parseAnthropicModel} only
|
|
49
|
+
* classifies kinds enumerated in its regex, so any dotted profile whose kind
|
|
50
|
+
* (e.g. `haiku`) is not enumerated would otherwise slip past this fallback.
|
|
51
|
+
*/
|
|
45
52
|
export const isClaudeModelId = memo((modelId: string): boolean => {
|
|
46
|
-
return /(
|
|
53
|
+
return /(^|[/.])claude[-.]/i.test(modelId);
|
|
47
54
|
});
|
|
48
55
|
|
|
49
56
|
/** `anthropic/`-namespaced ids (aggregator catalogs like OpenRouter). */
|
|
@@ -118,9 +125,13 @@ export const isOpenAIGptOssModelId = memo((modelId: string): boolean => {
|
|
|
118
125
|
return /(^|\/)gpt-oss[-:]/i.test(modelId);
|
|
119
126
|
});
|
|
120
127
|
|
|
121
|
-
/** OpenAI model ids (gpt-*,
|
|
128
|
+
/** OpenAI model ids (gpt-*, chatgpt-*, o1/o3/o4 SKUs, codex-*, or openai/*). */
|
|
122
129
|
export const isOpenAIModelId = memo((modelId: string): boolean => {
|
|
123
|
-
return
|
|
130
|
+
return (
|
|
131
|
+
/(^|\/)(?:gpt|chatgpt|codex)[-.]/i.test(modelId) ||
|
|
132
|
+
/(^|\/)o[134](?:[-.]|$)/i.test(modelId) ||
|
|
133
|
+
modelId.toLowerCase().includes("openai/")
|
|
134
|
+
);
|
|
124
135
|
});
|
|
125
136
|
|
|
126
137
|
/** OpenAI models at or above the gpt-5.4 wire generation, keyed off the parsed version. */
|