@fractaal/pi-ai 1.4.1 → 1.6.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 +50 -34
- package/dist/api/anthropic-messages.d.ts.map +1 -1
- package/dist/api/anthropic-messages.js +224 -27
- package/dist/api/anthropic-messages.js.map +1 -1
- package/dist/api/azure-openai-responses.js +1 -1
- package/dist/api/azure-openai-responses.js.map +1 -1
- package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/dist/api/bedrock-converse-stream.js +54 -25
- package/dist/api/bedrock-converse-stream.js.map +1 -1
- package/dist/api/bedrock-converse-stream.lazy.d.ts +7 -0
- package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -1
- package/dist/api/bedrock-converse-stream.lazy.js +18 -5
- package/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
- package/dist/api/constrained-sampling.d.ts +4 -0
- package/dist/api/constrained-sampling.d.ts.map +1 -1
- package/dist/api/constrained-sampling.js +18 -0
- package/dist/api/constrained-sampling.js.map +1 -1
- package/dist/api/lazy.d.ts +1 -1
- package/dist/api/lazy.d.ts.map +1 -1
- package/dist/api/lazy.js +9 -8
- package/dist/api/lazy.js.map +1 -1
- package/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/dist/api/openai-codex-responses.js +7 -3
- package/dist/api/openai-codex-responses.js.map +1 -1
- package/dist/api/openai-completions.d.ts +2 -1
- package/dist/api/openai-completions.d.ts.map +1 -1
- package/dist/api/openai-completions.js +10 -3
- package/dist/api/openai-completions.js.map +1 -1
- package/dist/api/openai-responses.d.ts.map +1 -1
- package/dist/api/openai-responses.js +4 -2
- package/dist/api/openai-responses.js.map +1 -1
- package/dist/api/pi-messages.d.ts.map +1 -1
- package/dist/api/pi-messages.js +9 -0
- package/dist/api/pi-messages.js.map +1 -1
- package/dist/api/simple-options.d.ts +1 -0
- package/dist/api/simple-options.d.ts.map +1 -1
- package/dist/api/simple-options.js +16 -2
- package/dist/api/simple-options.js.map +1 -1
- package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
- package/dist/auth/oauth/github-copilot.js +4 -11
- package/dist/auth/oauth/github-copilot.js.map +1 -1
- package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
- package/dist/auth/oauth/kimi-coding.js +4 -22
- package/dist/auth/oauth/kimi-coding.js.map +1 -1
- package/dist/auth/oauth/load.d.ts.map +1 -1
- package/dist/auth/oauth/load.js +5 -2
- package/dist/auth/oauth/load.js.map +1 -1
- package/dist/auth/oauth/meta.d.ts.map +1 -1
- package/dist/auth/oauth/meta.js +1 -14
- package/dist/auth/oauth/meta.js.map +1 -1
- package/dist/auth/oauth/radius.d.ts.map +1 -1
- package/dist/auth/oauth/radius.js +9 -3
- package/dist/auth/oauth/radius.js.map +1 -1
- package/dist/auth/oauth/trusted-url.d.ts +7 -0
- package/dist/auth/oauth/trusted-url.d.ts.map +1 -0
- package/dist/auth/oauth/trusted-url.js +12 -0
- package/dist/auth/oauth/trusted-url.js.map +1 -0
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/env-api-keys.d.ts.map +1 -1
- package/dist/env-api-keys.js +1 -0
- package/dist/env-api-keys.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/lazy-bedrock-provider.d.ts +10 -0
- package/dist/lazy-bedrock-provider.d.ts.map +1 -0
- package/dist/lazy-bedrock-provider.js +13 -0
- package/dist/lazy-bedrock-provider.js.map +1 -0
- package/dist/lazy-oauth.d.ts +10 -0
- package/dist/lazy-oauth.d.ts.map +1 -0
- package/dist/lazy-oauth.js +23 -0
- package/dist/lazy-oauth.js.map +1 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/models.generated.d.ts +4 -0
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +5 -1
- package/dist/models.generated.js.map +1 -1
- package/dist/models.js +8 -8
- package/dist/models.js.map +1 -1
- package/dist/providers/all.d.ts.map +1 -1
- package/dist/providers/all.js +2 -0
- package/dist/providers/all.js.map +1 -1
- package/dist/providers/amazon-bedrock.models.js +1 -1
- package/dist/providers/amazon-bedrock.models.js.map +1 -1
- package/dist/providers/ant-ling.models.js +1 -1
- package/dist/providers/ant-ling.models.js.map +1 -1
- package/dist/providers/anthropic.models.js +1 -1
- package/dist/providers/anthropic.models.js.map +1 -1
- package/dist/providers/azure.models.js +1 -1
- package/dist/providers/azure.models.js.map +1 -1
- package/dist/providers/baseten.models.js +1 -1
- package/dist/providers/baseten.models.js.map +1 -1
- package/dist/providers/cerebras.models.js +1 -1
- package/dist/providers/cerebras.models.js.map +1 -1
- package/dist/providers/cloudflare-ai-gateway.models.js +1 -1
- package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
- package/dist/providers/cloudflare-workers-ai.models.js +1 -1
- package/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
- package/dist/providers/compat-schema.d.ts +441 -456
- package/dist/providers/compat-schema.d.ts.map +1 -1
- package/dist/providers/compat-schema.js +163 -112
- package/dist/providers/compat-schema.js.map +1 -1
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/amazon-bedrock.json +1 -1
- package/dist/providers/data/anthropic.json +1 -1
- package/dist/providers/data/azure.json +1 -1
- package/dist/providers/data/baseten.json +1 -1
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/dist/providers/data/fireworks.json +1 -1
- package/dist/providers/data/github-copilot.json +1 -1
- package/dist/providers/data/google-vertex.json +1 -1
- package/dist/providers/data/google.json +1 -1
- package/dist/providers/data/huggingface.json +1 -1
- package/dist/providers/data/kimi-coding.json +1 -1
- package/dist/providers/data/mistral.json +1 -1
- package/dist/providers/data/nvidia.json +1 -1
- package/dist/providers/data/openai-codex.json +1 -1
- package/dist/providers/data/openai.json +1 -1
- package/dist/providers/data/opencode-go.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/qwen-token-plan-cn.json +1 -1
- package/dist/providers/data/qwen-token-plan-individual-cn.json +1 -0
- package/dist/providers/data/qwen-token-plan-individual.json +1 -1
- package/dist/providers/data/qwen-token-plan.json +1 -1
- package/dist/providers/data/radius.json +1 -1
- package/dist/providers/data/together.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/providers/data/xai.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/dist/providers/data/xiaomi.json +1 -1
- package/dist/providers/data/zai-coding-cn.json +1 -1
- package/dist/providers/data/zai.json +1 -1
- package/dist/providers/deepseek.models.js +1 -1
- package/dist/providers/deepseek.models.js.map +1 -1
- package/dist/providers/fireworks.models.js +1 -1
- package/dist/providers/fireworks.models.js.map +1 -1
- package/dist/providers/github-copilot.d.ts +3 -1
- package/dist/providers/github-copilot.d.ts.map +1 -1
- package/dist/providers/github-copilot.js +13 -2
- package/dist/providers/github-copilot.js.map +1 -1
- package/dist/providers/github-copilot.models.js +1 -1
- package/dist/providers/github-copilot.models.js.map +1 -1
- package/dist/providers/google-vertex.models.js +1 -1
- package/dist/providers/google-vertex.models.js.map +1 -1
- package/dist/providers/google.models.js +1 -1
- package/dist/providers/google.models.js.map +1 -1
- package/dist/providers/groq.models.js +1 -1
- package/dist/providers/groq.models.js.map +1 -1
- package/dist/providers/huggingface.models.js +1 -1
- package/dist/providers/huggingface.models.js.map +1 -1
- package/dist/providers/kimi-coding.models.js +1 -1
- package/dist/providers/kimi-coding.models.js.map +1 -1
- package/dist/providers/meta.models.js +1 -1
- package/dist/providers/meta.models.js.map +1 -1
- package/dist/providers/minimax-cn.models.js +1 -1
- package/dist/providers/minimax-cn.models.js.map +1 -1
- package/dist/providers/minimax.models.js +1 -1
- package/dist/providers/minimax.models.js.map +1 -1
- package/dist/providers/mistral.models.js +1 -1
- package/dist/providers/mistral.models.js.map +1 -1
- package/dist/providers/model-schema.d.ts +65 -65
- package/dist/providers/model-schema.d.ts.map +1 -1
- package/dist/providers/model-schema.js +41 -30
- package/dist/providers/model-schema.js.map +1 -1
- package/dist/providers/moonshotai-cn.models.js +1 -1
- package/dist/providers/moonshotai-cn.models.js.map +1 -1
- package/dist/providers/moonshotai.models.js +1 -1
- package/dist/providers/moonshotai.models.js.map +1 -1
- package/dist/providers/nvidia.models.js +1 -1
- package/dist/providers/nvidia.models.js.map +1 -1
- package/dist/providers/openai-codex-catalog.d.ts.map +1 -1
- package/dist/providers/openai-codex-catalog.js +44 -44
- package/dist/providers/openai-codex-catalog.js.map +1 -1
- package/dist/providers/openai-codex.models.js +1 -1
- package/dist/providers/openai-codex.models.js.map +1 -1
- package/dist/providers/openai.models.js +1 -1
- package/dist/providers/openai.models.js.map +1 -1
- package/dist/providers/opencode-go.models.js +1 -1
- package/dist/providers/opencode-go.models.js.map +1 -1
- package/dist/providers/opencode.js +1 -1
- package/dist/providers/opencode.js.map +1 -1
- package/dist/providers/opencode.models.js +1 -1
- package/dist/providers/opencode.models.js.map +1 -1
- package/dist/providers/openrouter.models.js +1 -1
- package/dist/providers/openrouter.models.js.map +1 -1
- package/dist/providers/qwen-token-plan-cn.models.js +1 -1
- package/dist/providers/qwen-token-plan-cn.models.js.map +1 -1
- package/dist/providers/qwen-token-plan-individual-cn.d.ts +3 -0
- package/dist/providers/qwen-token-plan-individual-cn.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-individual-cn.js +15 -0
- package/dist/providers/qwen-token-plan-individual-cn.js.map +1 -0
- package/dist/providers/qwen-token-plan-individual-cn.models.d.ts +6 -0
- package/dist/providers/qwen-token-plan-individual-cn.models.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-individual-cn.models.js +8 -0
- package/dist/providers/qwen-token-plan-individual-cn.models.js.map +1 -0
- package/dist/providers/qwen-token-plan-individual.models.js +1 -1
- package/dist/providers/qwen-token-plan-individual.models.js.map +1 -1
- package/dist/providers/qwen-token-plan.models.js +1 -1
- package/dist/providers/qwen-token-plan.models.js.map +1 -1
- package/dist/providers/radius.models.js +1 -1
- package/dist/providers/radius.models.js.map +1 -1
- package/dist/providers/schema-builders.d.ts +10 -0
- package/dist/providers/schema-builders.d.ts.map +1 -0
- package/dist/providers/schema-builders.js +18 -0
- package/dist/providers/schema-builders.js.map +1 -0
- package/dist/providers/together.models.js +1 -1
- package/dist/providers/together.models.js.map +1 -1
- package/dist/providers/typesafe.models.js +1 -1
- package/dist/providers/typesafe.models.js.map +1 -1
- package/dist/providers/vercel-ai-gateway.models.js +1 -1
- package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
- package/dist/providers/xai.models.js +1 -1
- package/dist/providers/xai.models.js.map +1 -1
- package/dist/providers/xiaomi-token-plan-ams.models.js +1 -1
- package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
- package/dist/providers/xiaomi-token-plan-cn.models.js +1 -1
- package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
- package/dist/providers/xiaomi-token-plan-sgp.models.js +1 -1
- package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
- package/dist/providers/xiaomi.models.js +1 -1
- package/dist/providers/xiaomi.models.js.map +1 -1
- package/dist/providers/zai-coding-cn.models.js +1 -1
- package/dist/providers/zai-coding-cn.models.js.map +1 -1
- package/dist/providers/zai.models.js +1 -1
- package/dist/providers/zai.models.js.map +1 -1
- package/dist/types.d.ts +13 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/error-body.d.ts +8 -0
- package/dist/utils/error-body.d.ts.map +1 -1
- package/dist/utils/error-body.js +28 -1
- package/dist/utils/error-body.js.map +1 -1
- package/dist/utils/overflow.d.ts.map +1 -1
- package/dist/utils/overflow.js +2 -0
- package/dist/utils/overflow.js.map +1 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +3 -0
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/{typebox-helpers.d.ts → string-enum.d.ts} +5 -5
- package/dist/utils/string-enum.d.ts.map +1 -0
- package/dist/utils/{typebox-helpers.js → string-enum.js} +5 -6
- package/dist/utils/string-enum.js.map +1 -0
- package/dist/utils/transcript.d.ts +1 -1
- package/dist/utils/transcript.js +1 -1
- package/dist/utils/transcript.js.map +1 -1
- package/dist/utils/validation.d.ts +5 -3
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +25 -446
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.js +1 -1
- package/dist/utils/version.js.map +1 -1
- package/package.json +18 -9
- package/dist/utils/typebox-helpers.d.ts.map +0 -1
- package/dist/utils/typebox-helpers.js.map +0 -1
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { type Static
|
|
1
|
+
import { type Static } from "@earendil-works/pi-schema";
|
|
2
2
|
export declare const THINKING_LEVELS: readonly ["minimal", "low", "medium", "high", "xhigh", "max"];
|
|
3
3
|
export declare const MODEL_THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
4
4
|
export declare const MODEL_INPUT_MODALITIES: readonly ["text", "image"];
|
|
5
5
|
export declare const CACHE_RETENTIONS: readonly ["none", "short", "long"];
|
|
6
6
|
export declare const MODEL_PROMPT_CACHE_RETENTIONS: readonly ["short", "long"];
|
|
7
|
-
export declare const ThinkingLevelSchema:
|
|
8
|
-
export declare const ModelThinkingLevelSchema:
|
|
9
|
-
export declare const ModelInputModalitySchema:
|
|
10
|
-
export declare const CacheRetentionSchema:
|
|
11
|
-
export declare const ThinkingLevelMapSchema:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
medium
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
export declare const ThinkingLevelSchema: import("@earendil-works/pi-schema").Schema<"high" | "low" | "max" | "medium" | "minimal" | "xhigh">;
|
|
8
|
+
export declare const ModelThinkingLevelSchema: import("@earendil-works/pi-schema").Schema<"high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh">;
|
|
9
|
+
export declare const ModelInputModalitySchema: import("@earendil-works/pi-schema").Schema<"image" | "text">;
|
|
10
|
+
export declare const CacheRetentionSchema: import("@earendil-works/pi-schema").Schema<"long" | "none" | "short">;
|
|
11
|
+
export declare const ThinkingLevelMapSchema: import("@earendil-works/pi-schema").Schema<{
|
|
12
|
+
off?: string | null | undefined;
|
|
13
|
+
minimal?: string | null | undefined;
|
|
14
|
+
low?: string | null | undefined;
|
|
15
|
+
medium?: string | null | undefined;
|
|
16
|
+
high?: string | null | undefined;
|
|
17
|
+
xhigh?: string | null | undefined;
|
|
18
|
+
max?: string | null | undefined;
|
|
19
19
|
}>;
|
|
20
|
-
export declare const ModelPromptCacheSchema:
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
export declare const ModelPromptCacheSchema: import("@earendil-works/pi-schema").Schema<{
|
|
21
|
+
short?: number | undefined;
|
|
22
|
+
long?: number | undefined;
|
|
23
23
|
}>;
|
|
24
|
-
export declare const ModelCostRatesSchema:
|
|
25
|
-
input:
|
|
26
|
-
output:
|
|
27
|
-
cacheRead:
|
|
28
|
-
cacheWrite:
|
|
24
|
+
export declare const ModelCostRatesSchema: import("@earendil-works/pi-schema").Schema<{
|
|
25
|
+
input: number;
|
|
26
|
+
output: number;
|
|
27
|
+
cacheRead: number;
|
|
28
|
+
cacheWrite: number;
|
|
29
29
|
}>;
|
|
30
|
-
export declare const ModelCostTierSchema:
|
|
31
|
-
input:
|
|
32
|
-
output:
|
|
33
|
-
cacheRead:
|
|
34
|
-
cacheWrite:
|
|
35
|
-
inputTokensAbove:
|
|
30
|
+
export declare const ModelCostTierSchema: import("@earendil-works/pi-schema").Schema<{
|
|
31
|
+
input: number;
|
|
32
|
+
output: number;
|
|
33
|
+
cacheRead: number;
|
|
34
|
+
cacheWrite: number;
|
|
35
|
+
inputTokensAbove: number;
|
|
36
36
|
}>;
|
|
37
|
-
export declare const ModelCostSchema:
|
|
38
|
-
input:
|
|
39
|
-
output:
|
|
40
|
-
cacheRead:
|
|
41
|
-
cacheWrite:
|
|
42
|
-
tiers
|
|
43
|
-
input:
|
|
44
|
-
output:
|
|
45
|
-
cacheRead:
|
|
46
|
-
cacheWrite:
|
|
47
|
-
inputTokensAbove:
|
|
48
|
-
}
|
|
37
|
+
export declare const ModelCostSchema: import("@earendil-works/pi-schema").Schema<{
|
|
38
|
+
input: number;
|
|
39
|
+
output: number;
|
|
40
|
+
cacheRead: number;
|
|
41
|
+
cacheWrite: number;
|
|
42
|
+
tiers?: {
|
|
43
|
+
input: number;
|
|
44
|
+
output: number;
|
|
45
|
+
cacheRead: number;
|
|
46
|
+
cacheWrite: number;
|
|
47
|
+
inputTokensAbove: number;
|
|
48
|
+
}[] | undefined;
|
|
49
49
|
}>;
|
|
50
|
-
export declare const ModelImageResizeOptionsSchema:
|
|
51
|
-
maxWidth
|
|
52
|
-
maxHeight
|
|
53
|
-
maxBytes
|
|
54
|
-
jpegQuality
|
|
50
|
+
export declare const ModelImageResizeOptionsSchema: import("@earendil-works/pi-schema").Schema<{
|
|
51
|
+
maxWidth?: number | undefined;
|
|
52
|
+
maxHeight?: number | undefined;
|
|
53
|
+
maxBytes?: number | undefined;
|
|
54
|
+
jpegQuality?: number | undefined;
|
|
55
55
|
}>;
|
|
56
|
-
export declare const ModelImageInputLimitsSchema:
|
|
57
|
-
resize
|
|
58
|
-
maxWidth
|
|
59
|
-
maxHeight
|
|
60
|
-
maxBytes
|
|
61
|
-
jpegQuality
|
|
62
|
-
}
|
|
63
|
-
maxPerMessage
|
|
64
|
-
maxPerRequest
|
|
56
|
+
export declare const ModelImageInputLimitsSchema: import("@earendil-works/pi-schema").Schema<{
|
|
57
|
+
resize?: {
|
|
58
|
+
maxWidth?: number | undefined;
|
|
59
|
+
maxHeight?: number | undefined;
|
|
60
|
+
maxBytes?: number | undefined;
|
|
61
|
+
jpegQuality?: number | undefined;
|
|
62
|
+
} | undefined;
|
|
63
|
+
maxPerMessage?: number | undefined;
|
|
64
|
+
maxPerRequest?: number | undefined;
|
|
65
65
|
}>;
|
|
66
|
-
export declare const ModelInputLimitsSchema:
|
|
67
|
-
maxRequestBytes
|
|
68
|
-
images
|
|
69
|
-
resize
|
|
70
|
-
maxWidth
|
|
71
|
-
maxHeight
|
|
72
|
-
maxBytes
|
|
73
|
-
jpegQuality
|
|
74
|
-
}
|
|
75
|
-
maxPerMessage
|
|
76
|
-
maxPerRequest
|
|
77
|
-
}
|
|
66
|
+
export declare const ModelInputLimitsSchema: import("@earendil-works/pi-schema").Schema<{
|
|
67
|
+
maxRequestBytes?: number | undefined;
|
|
68
|
+
images?: {
|
|
69
|
+
resize?: {
|
|
70
|
+
maxWidth?: number | undefined;
|
|
71
|
+
maxHeight?: number | undefined;
|
|
72
|
+
maxBytes?: number | undefined;
|
|
73
|
+
jpegQuality?: number | undefined;
|
|
74
|
+
} | undefined;
|
|
75
|
+
maxPerMessage?: number | undefined;
|
|
76
|
+
maxPerRequest?: number | undefined;
|
|
77
|
+
} | undefined;
|
|
78
78
|
}>;
|
|
79
79
|
export type ThinkingLevel = Static<typeof ThinkingLevelSchema>;
|
|
80
80
|
export type ModelThinkingLevel = Static<typeof ModelThinkingLevelSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-schema.d.ts","sourceRoot":"","sources":["../../src/providers/model-schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"model-schema.d.ts","sourceRoot":"","sources":["../../src/providers/model-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAQN,KAAK,MAAM,EAIX,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,eAAe,YAAI,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAC7F,eAAO,MAAM,qBAAqB,sEAAuC,CAAC;AAC1E,eAAO,MAAM,sBAAsB,YAAI,MAAM,EAAE,OAAO,CAAU,CAAC;AACjE,eAAO,MAAM,gBAAgB,YAAI,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACnE,eAAO,MAAM,6BAA6B,YAAI,OAAO,EAAE,MAAM,CAAU,CAAC;AAExE,eAAO,MAAM,mBAAmB,qGAAyB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,6GAA+B,CAAC;AACrE,eAAO,MAAM,wBAAwB,8DAAgC,CAAC;AACtE,eAAO,MAAM,oBAAoB,uEAA0B,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;;;;;;;EAclC,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;EAMlC,CAAC;AASF,eAAO,MAAM,oBAAoB;;;;;EAAmC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;EAK9B,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;EAO1B,CAAC;AAaH,eAAO,MAAM,6BAA6B;;;;;EAA4B,CAAC;AAEvE,eAAO,MAAM,2BAA2B;;;;;;;;;EAQtC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC/D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AACvD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACnF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -1,57 +1,68 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { arr, int, nul, num, oneOf, opt, str, union, } from "@earendil-works/pi-schema";
|
|
2
|
+
import { openObject as object } from "./schema-builders.js";
|
|
2
3
|
export const THINKING_LEVELS = ["minimal", "low", "medium", "high", "xhigh", "max"];
|
|
3
4
|
export const MODEL_THINKING_LEVELS = ["off", ...THINKING_LEVELS];
|
|
4
5
|
export const MODEL_INPUT_MODALITIES = ["text", "image"];
|
|
5
6
|
export const CACHE_RETENTIONS = ["none", "short", "long"];
|
|
6
7
|
export const MODEL_PROMPT_CACHE_RETENTIONS = ["short", "long"];
|
|
7
|
-
export const ThinkingLevelSchema =
|
|
8
|
-
export const ModelThinkingLevelSchema =
|
|
9
|
-
export const ModelInputModalitySchema =
|
|
10
|
-
export const CacheRetentionSchema =
|
|
11
|
-
const ThinkingLevelMapValueSchema =
|
|
12
|
-
export const ThinkingLevelMapSchema =
|
|
8
|
+
export const ThinkingLevelSchema = oneOf(THINKING_LEVELS);
|
|
9
|
+
export const ModelThinkingLevelSchema = oneOf(MODEL_THINKING_LEVELS);
|
|
10
|
+
export const ModelInputModalitySchema = oneOf(MODEL_INPUT_MODALITIES);
|
|
11
|
+
export const CacheRetentionSchema = oneOf(CACHE_RETENTIONS);
|
|
12
|
+
const ThinkingLevelMapValueSchema = union([str(), nul()]);
|
|
13
|
+
export const ThinkingLevelMapSchema = object({
|
|
14
|
+
off: opt(ThinkingLevelMapValueSchema),
|
|
15
|
+
minimal: opt(ThinkingLevelMapValueSchema),
|
|
16
|
+
low: opt(ThinkingLevelMapValueSchema),
|
|
17
|
+
medium: opt(ThinkingLevelMapValueSchema),
|
|
18
|
+
high: opt(ThinkingLevelMapValueSchema),
|
|
19
|
+
xhigh: opt(ThinkingLevelMapValueSchema),
|
|
20
|
+
max: opt(ThinkingLevelMapValueSchema),
|
|
21
|
+
}, {
|
|
13
22
|
description: "Provider value sent for each thinking level. null marks a level unsupported. Levels the model does not map use the provider's default value through high; xhigh and max are unsupported.",
|
|
14
23
|
});
|
|
15
|
-
|
|
24
|
+
const PromptCacheLifetimeSchema = num({ exclusiveMinimum: 0 });
|
|
25
|
+
export const ModelPromptCacheSchema = object({ short: opt(PromptCacheLifetimeSchema), long: opt(PromptCacheLifetimeSchema) }, {
|
|
16
26
|
description: "Best-effort prompt cache lifetime in seconds for the short and long retention tiers. Pi warms only tiers with a known lifetime.",
|
|
17
27
|
});
|
|
18
28
|
const ModelCostRatesProperties = {
|
|
19
|
-
input:
|
|
20
|
-
output:
|
|
21
|
-
cacheRead:
|
|
22
|
-
cacheWrite:
|
|
29
|
+
input: num({ description: "Input cost in USD per million tokens." }),
|
|
30
|
+
output: num({ description: "Output cost in USD per million tokens." }),
|
|
31
|
+
cacheRead: num({ description: "Cache-read cost in USD per million tokens." }),
|
|
32
|
+
cacheWrite: num({ description: "Cache-write cost in USD per million tokens." }),
|
|
23
33
|
};
|
|
24
|
-
export const ModelCostRatesSchema =
|
|
25
|
-
export const ModelCostTierSchema =
|
|
26
|
-
inputTokensAbove:
|
|
34
|
+
export const ModelCostRatesSchema = object(ModelCostRatesProperties);
|
|
35
|
+
export const ModelCostTierSchema = object({
|
|
36
|
+
inputTokensAbove: num({
|
|
27
37
|
description: "Use this tier when total request input exceeds this token count.",
|
|
28
38
|
}),
|
|
29
39
|
...ModelCostRatesProperties,
|
|
30
40
|
});
|
|
31
|
-
export const ModelCostSchema =
|
|
41
|
+
export const ModelCostSchema = object({
|
|
32
42
|
...ModelCostRatesProperties,
|
|
33
|
-
tiers:
|
|
43
|
+
tiers: opt(arr(ModelCostTierSchema, {
|
|
34
44
|
description: "Request-wide pricing tiers. The highest matching input threshold applies to the full request.",
|
|
35
45
|
})),
|
|
36
46
|
});
|
|
47
|
+
const ModelImageResizeProperties = {
|
|
48
|
+
maxWidth: opt(int({ minimum: 1 })),
|
|
49
|
+
maxHeight: opt(int({ minimum: 1 })),
|
|
50
|
+
maxBytes: opt(int({ minimum: 1, description: "Maximum base64-encoded payload size in bytes." })),
|
|
51
|
+
jpegQuality: opt(int({ minimum: 1, maximum: 100 })),
|
|
52
|
+
};
|
|
37
53
|
function modelImageResizeOptions(options) {
|
|
38
|
-
return
|
|
39
|
-
maxWidth: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
40
|
-
maxHeight: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
41
|
-
maxBytes: Type.Optional(Type.Integer({ minimum: 1, description: "Maximum base64-encoded payload size in bytes." })),
|
|
42
|
-
jpegQuality: Type.Optional(Type.Integer({ minimum: 1, maximum: 100 })),
|
|
43
|
-
}, options);
|
|
54
|
+
return object(ModelImageResizeProperties, options);
|
|
44
55
|
}
|
|
45
56
|
export const ModelImageResizeOptionsSchema = modelImageResizeOptions();
|
|
46
|
-
export const ModelImageInputLimitsSchema =
|
|
47
|
-
resize:
|
|
57
|
+
export const ModelImageInputLimitsSchema = object({
|
|
58
|
+
resize: opt(modelImageResizeOptions({
|
|
48
59
|
description: "Cache-safe resize profile applied before a new image enters conversation history.",
|
|
49
60
|
})),
|
|
50
|
-
maxPerMessage:
|
|
51
|
-
maxPerRequest:
|
|
61
|
+
maxPerMessage: opt(int({ minimum: 1, description: "Maximum images accepted in one provider message." })),
|
|
62
|
+
maxPerRequest: opt(int({ minimum: 1, description: "Maximum images accepted across one provider request." })),
|
|
52
63
|
});
|
|
53
|
-
export const ModelInputLimitsSchema =
|
|
54
|
-
maxRequestBytes:
|
|
55
|
-
images:
|
|
64
|
+
export const ModelInputLimitsSchema = object({
|
|
65
|
+
maxRequestBytes: opt(int({ minimum: 1, description: "Maximum serialized provider request size in bytes." })),
|
|
66
|
+
images: opt(ModelImageInputLimitsSchema),
|
|
56
67
|
});
|
|
57
68
|
//# sourceMappingURL=model-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-schema.js","sourceRoot":"","sources":["../../src/providers/model-schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"model-schema.js","sourceRoot":"","sources":["../../src/providers/model-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype Annotations,\n\tarr,\n\tint,\n\tnul,\n\tnum,\n\toneOf,\n\topt,\n\ttype Static,\n\ttype StaticObject,\n\tstr,\n\tunion,\n} from \"@earendil-works/pi-schema\";\nimport { openObject as object } from \"./schema-builders.ts\";\n\nexport const THINKING_LEVELS = [\"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const;\nexport const MODEL_THINKING_LEVELS = [\"off\", ...THINKING_LEVELS] as const;\nexport const MODEL_INPUT_MODALITIES = [\"text\", \"image\"] as const;\nexport const CACHE_RETENTIONS = [\"none\", \"short\", \"long\"] as const;\nexport const MODEL_PROMPT_CACHE_RETENTIONS = [\"short\", \"long\"] as const;\n\nexport const ThinkingLevelSchema = oneOf(THINKING_LEVELS);\nexport const ModelThinkingLevelSchema = oneOf(MODEL_THINKING_LEVELS);\nexport const ModelInputModalitySchema = oneOf(MODEL_INPUT_MODALITIES);\nexport const CacheRetentionSchema = oneOf(CACHE_RETENTIONS);\n\nconst ThinkingLevelMapValueSchema = union([str(), nul()]);\nexport const ThinkingLevelMapSchema = object(\n\t{\n\t\toff: opt(ThinkingLevelMapValueSchema),\n\t\tminimal: opt(ThinkingLevelMapValueSchema),\n\t\tlow: opt(ThinkingLevelMapValueSchema),\n\t\tmedium: opt(ThinkingLevelMapValueSchema),\n\t\thigh: opt(ThinkingLevelMapValueSchema),\n\t\txhigh: opt(ThinkingLevelMapValueSchema),\n\t\tmax: opt(ThinkingLevelMapValueSchema),\n\t},\n\t{\n\t\tdescription:\n\t\t\t\"Provider value sent for each thinking level. null marks a level unsupported. Levels the model does not map use the provider's default value through high; xhigh and max are unsupported.\",\n\t},\n);\n\nconst PromptCacheLifetimeSchema = num({ exclusiveMinimum: 0 });\nexport const ModelPromptCacheSchema = object(\n\t{ short: opt(PromptCacheLifetimeSchema), long: opt(PromptCacheLifetimeSchema) },\n\t{\n\t\tdescription:\n\t\t\t\"Best-effort prompt cache lifetime in seconds for the short and long retention tiers. Pi warms only tiers with a known lifetime.\",\n\t},\n);\n\nconst ModelCostRatesProperties = {\n\tinput: num({ description: \"Input cost in USD per million tokens.\" }),\n\toutput: num({ description: \"Output cost in USD per million tokens.\" }),\n\tcacheRead: num({ description: \"Cache-read cost in USD per million tokens.\" }),\n\tcacheWrite: num({ description: \"Cache-write cost in USD per million tokens.\" }),\n};\n\nexport const ModelCostRatesSchema = object(ModelCostRatesProperties);\nexport const ModelCostTierSchema = object({\n\tinputTokensAbove: num({\n\t\tdescription: \"Use this tier when total request input exceeds this token count.\",\n\t}),\n\t...ModelCostRatesProperties,\n});\nexport const ModelCostSchema = object({\n\t...ModelCostRatesProperties,\n\ttiers: opt(\n\t\tarr(ModelCostTierSchema, {\n\t\t\tdescription: \"Request-wide pricing tiers. The highest matching input threshold applies to the full request.\",\n\t\t}),\n\t),\n});\n\nconst ModelImageResizeProperties = {\n\tmaxWidth: opt(int({ minimum: 1 })),\n\tmaxHeight: opt(int({ minimum: 1 })),\n\tmaxBytes: opt(int({ minimum: 1, description: \"Maximum base64-encoded payload size in bytes.\" })),\n\tjpegQuality: opt(int({ minimum: 1, maximum: 100 })),\n};\n\nfunction modelImageResizeOptions(options?: Annotations<StaticObject<typeof ModelImageResizeProperties>>) {\n\treturn object(ModelImageResizeProperties, options);\n}\n\nexport const ModelImageResizeOptionsSchema = modelImageResizeOptions();\n\nexport const ModelImageInputLimitsSchema = object({\n\tresize: opt(\n\t\tmodelImageResizeOptions({\n\t\t\tdescription: \"Cache-safe resize profile applied before a new image enters conversation history.\",\n\t\t}),\n\t),\n\tmaxPerMessage: opt(int({ minimum: 1, description: \"Maximum images accepted in one provider message.\" })),\n\tmaxPerRequest: opt(int({ minimum: 1, description: \"Maximum images accepted across one provider request.\" })),\n});\n\nexport const ModelInputLimitsSchema = object({\n\tmaxRequestBytes: opt(int({ minimum: 1, description: \"Maximum serialized provider request size in bytes.\" })),\n\timages: opt(ModelImageInputLimitsSchema),\n});\n\nexport type ThinkingLevel = Static<typeof ThinkingLevelSchema>;\nexport type ModelThinkingLevel = Static<typeof ModelThinkingLevelSchema>;\nexport type ThinkingLevelMap = Static<typeof ThinkingLevelMapSchema>;\nexport type ModelInputModality = Static<typeof ModelInputModalitySchema>;\nexport type CacheRetention = Static<typeof CacheRetentionSchema>;\nexport type ModelPromptCache = Static<typeof ModelPromptCacheSchema>;\nexport type ModelCostRates = Static<typeof ModelCostRatesSchema>;\nexport type ModelCostTier = Static<typeof ModelCostTierSchema>;\nexport type ModelCost = Static<typeof ModelCostSchema>;\nexport type ModelImageResizeOptions = Static<typeof ModelImageResizeOptionsSchema>;\nexport type ModelImageInputLimits = Static<typeof ModelImageInputLimitsSchema>;\nexport type ModelInputLimits = Static<typeof ModelInputLimitsSchema>;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file is auto-generated by
|
|
1
|
+
// This file is auto-generated by catalog/generate.ts
|
|
2
2
|
// Do not edit manually - run 'npm run generate-models' to update
|
|
3
3
|
import values from "./data/moonshotai-cn.json" with { type: "json" };
|
|
4
4
|
import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moonshotai-cn.models.js","sourceRoot":"","sources":["../../src/providers/moonshotai-cn.models.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"moonshotai-cn.models.js","sourceRoot":"","sources":["../../src/providers/moonshotai-cn.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,oBAAoB,GAChC,uBAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,0BAA0B,GACtC,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,+BAA+B,GAC3C,6BAA6B,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/moonshotai-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const MOONSHOTAI_CN_MODELS: ChatModelCatalog<typeof values, \"moonshotai-cn\"> =\n\tflattenChatModelCatalog(\"moonshotai-cn\", values);\n\nexport const MOONSHOTAI_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"moonshotai-cn\"> =\n\tflattenImageModelCatalog(\"moonshotai-cn\", values);\n\nexport const MOONSHOTAI_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"moonshotai-cn\"> =\n\tflattenClassifierModelCatalog(\"moonshotai-cn\", values);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file is auto-generated by
|
|
1
|
+
// This file is auto-generated by catalog/generate.ts
|
|
2
2
|
// Do not edit manually - run 'npm run generate-models' to update
|
|
3
3
|
import values from "./data/moonshotai.json" with { type: "json" };
|
|
4
4
|
import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moonshotai.models.js","sourceRoot":"","sources":["../../src/providers/moonshotai.models.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"moonshotai.models.js","sourceRoot":"","sources":["../../src/providers/moonshotai.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,iBAAiB,GAC7B,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,uBAAuB,GACnC,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,4BAA4B,GACxC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/moonshotai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const MOONSHOTAI_MODELS: ChatModelCatalog<typeof values, \"moonshotai\"> =\n\tflattenChatModelCatalog(\"moonshotai\", values);\n\nexport const MOONSHOTAI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"moonshotai\"> =\n\tflattenImageModelCatalog(\"moonshotai\", values);\n\nexport const MOONSHOTAI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"moonshotai\"> =\n\tflattenClassifierModelCatalog(\"moonshotai\", values);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// This file is auto-generated by
|
|
1
|
+
// This file is auto-generated by catalog/generate.ts
|
|
2
2
|
// Do not edit manually - run 'npm run generate-models' to update
|
|
3
3
|
import values from "./data/nvidia.json" with { type: "json" };
|
|
4
4
|
import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvidia.models.js","sourceRoot":"","sources":["../../src/providers/nvidia.models.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"nvidia.models.js","sourceRoot":"","sources":["../../src/providers/nvidia.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/nvidia.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const NVIDIA_MODELS: ChatModelCatalog<typeof values, \"nvidia\"> =\n\tflattenChatModelCatalog(\"nvidia\", values);\n\nexport const NVIDIA_IMAGE_MODELS: ImageModelCatalog<typeof values, \"nvidia\"> =\n\tflattenImageModelCatalog(\"nvidia\", values);\n\nexport const NVIDIA_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"nvidia\"> =\n\tflattenClassifierModelCatalog(\"nvidia\", values);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-codex-catalog.d.ts","sourceRoot":"","sources":["../../src/providers/openai-codex-catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai-codex-catalog.d.ts","sourceRoot":"","sources":["../../src/providers/openai-codex-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AA+D7D,KAAK,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAElD,MAAM,WAAW,yBAAyB;IACzC,wGAAwG;IACxG,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;IAC5B,kFAAkF;IAClF,eAAe,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACxC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;CAC7B;AAoED,yFAAyF;AACzF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,GAAE,yBAA8B;IAO/G,SAAS,QAAM,SAAS,UAAU,EAAE;IACpC,YAAY,QAAM,SAAS,UAAU,EAAE;IACvC,aAAa,UAAU,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;EA+G5D"}
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Compile } from "typebox/compile";
|
|
1
|
+
import { arr, bool, compile, int, map, nul, num, oneOf, opt, str, union } from "@earendil-works/pi-schema";
|
|
3
2
|
import modelDataManifest from "./data/.manifest.json" with { type: "json" };
|
|
3
|
+
import { openObject as object } from "./schema-builders.js";
|
|
4
4
|
const PROVIDER = "openai-codex";
|
|
5
5
|
const BASE_URL = "https://chatgpt.com/backend-api";
|
|
6
6
|
const REFRESH_INTERVAL_MS = 4 * 60 * 60_000;
|
|
7
7
|
const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
8
8
|
const WIRE_EFFORTS = new Set(["none", "low", "medium", "high", "xhigh", "max"]);
|
|
9
9
|
const CATALOG_SOURCE = `${BASE_URL}/codex/models`;
|
|
10
|
-
const validateTokenClaims =
|
|
11
|
-
"https://api.openai.com/auth":
|
|
12
|
-
}));
|
|
13
|
-
const catalogVersionSchema =
|
|
14
|
-
const validateVersion =
|
|
15
|
-
const nativeCatalogSchema =
|
|
16
|
-
models:
|
|
17
|
-
slug:
|
|
18
|
-
display_name:
|
|
19
|
-
visibility:
|
|
20
|
-
context_window:
|
|
21
|
-
max_context_window:
|
|
22
|
-
supported_reasoning_levels:
|
|
23
|
-
input_modalities:
|
|
10
|
+
const validateTokenClaims = compile(object({
|
|
11
|
+
"https://api.openai.com/auth": object({ chatgpt_account_id: str({ minLength: 1 }) }),
|
|
12
|
+
})).check;
|
|
13
|
+
const catalogVersionSchema = object({ version: str({ pattern: "^\\d+\\.\\d+\\.\\d+$" }) });
|
|
14
|
+
const validateVersion = compile(catalogVersionSchema).check;
|
|
15
|
+
const nativeCatalogSchema = object({
|
|
16
|
+
models: arr(object({
|
|
17
|
+
slug: str({ minLength: 1, maxLength: 256 }),
|
|
18
|
+
display_name: str({ minLength: 1, maxLength: 256 }),
|
|
19
|
+
visibility: str(),
|
|
20
|
+
context_window: opt(union([int({ minimum: 1 }), nul()])),
|
|
21
|
+
max_context_window: opt(union([int({ minimum: 1 }), nul()])),
|
|
22
|
+
supported_reasoning_levels: arr(object({ effort: str() })),
|
|
23
|
+
input_modalities: opt(arr(str())),
|
|
24
24
|
})),
|
|
25
25
|
});
|
|
26
|
-
const validateNativeCatalog =
|
|
26
|
+
const validateNativeCatalog = compile(nativeCatalogSchema).check;
|
|
27
27
|
const costRates = {
|
|
28
|
-
input:
|
|
29
|
-
output:
|
|
30
|
-
cacheRead:
|
|
31
|
-
cacheWrite:
|
|
28
|
+
input: num({ minimum: 0 }),
|
|
29
|
+
output: num({ minimum: 0 }),
|
|
30
|
+
cacheRead: num({ minimum: 0 }),
|
|
31
|
+
cacheWrite: num({ minimum: 0 }),
|
|
32
32
|
};
|
|
33
|
-
const metadataSchema =
|
|
34
|
-
id:
|
|
35
|
-
name:
|
|
36
|
-
reasoning:
|
|
37
|
-
input:
|
|
38
|
-
contextWindow:
|
|
39
|
-
maxTokens:
|
|
40
|
-
maxContextWindow:
|
|
41
|
-
cost:
|
|
33
|
+
const metadataSchema = object({
|
|
34
|
+
id: str({ minLength: 1, maxLength: 256 }),
|
|
35
|
+
name: str({ minLength: 1 }),
|
|
36
|
+
reasoning: bool(),
|
|
37
|
+
input: arr(oneOf(["text", "image"])),
|
|
38
|
+
contextWindow: int({ minimum: 1 }),
|
|
39
|
+
maxTokens: int({ minimum: 1 }),
|
|
40
|
+
maxContextWindow: opt(int({ minimum: 1 })),
|
|
41
|
+
cost: object({
|
|
42
42
|
...costRates,
|
|
43
|
-
tiers:
|
|
43
|
+
tiers: opt(arr(object({ inputTokensAbove: num({ minimum: 0 }), ...costRates }))),
|
|
44
44
|
}),
|
|
45
|
-
thinkingLevelMap:
|
|
46
|
-
compat:
|
|
47
|
-
supportsDeveloperRole:
|
|
48
|
-
supportsLongCacheRetention:
|
|
49
|
-
supportsStrictMode:
|
|
50
|
-
supportsOpenAIGrammarTools:
|
|
51
|
-
supportsToolSearch:
|
|
52
|
-
supportsExplicitPromptCacheMode:
|
|
45
|
+
thinkingLevelMap: opt(map(union([str(), nul()]))),
|
|
46
|
+
compat: opt(object({
|
|
47
|
+
supportsDeveloperRole: opt(bool()),
|
|
48
|
+
supportsLongCacheRetention: opt(bool()),
|
|
49
|
+
supportsStrictMode: opt(bool()),
|
|
50
|
+
supportsOpenAIGrammarTools: opt(bool()),
|
|
51
|
+
supportsToolSearch: opt(bool()),
|
|
52
|
+
supportsExplicitPromptCacheMode: opt(bool()),
|
|
53
53
|
})),
|
|
54
54
|
});
|
|
55
|
-
const validateMetadata =
|
|
55
|
+
const validateMetadata = compile(metadataSchema).check;
|
|
56
56
|
function parseMetadata(value) {
|
|
57
57
|
const rows = Array.isArray(value)
|
|
58
58
|
? value
|
|
@@ -60,7 +60,7 @@ function parseMetadata(value) {
|
|
|
60
60
|
? Object.values(value)
|
|
61
61
|
: [];
|
|
62
62
|
return rows.flatMap((row) => {
|
|
63
|
-
if (!validateMetadata
|
|
63
|
+
if (!validateMetadata(row))
|
|
64
64
|
return [];
|
|
65
65
|
// Catalogs describe model data, never where OAuth credentials are sent.
|
|
66
66
|
const { id, name, reasoning, input, contextWindow, maxTokens, maxContextWindow, cost, compat } = row;
|
|
@@ -156,7 +156,7 @@ export function createOpenAICodexCatalog(baseline, options = {}) {
|
|
|
156
156
|
if (!versionResponse.ok)
|
|
157
157
|
throw new Error(`Codex catalog version lookup failed (${versionResponse.status}).`);
|
|
158
158
|
const version = await versionResponse.json();
|
|
159
|
-
if (!validateVersion
|
|
159
|
+
if (!validateVersion(version))
|
|
160
160
|
throw new Error("Codex catalog version metadata is invalid.");
|
|
161
161
|
const headers = new Headers({ accept: "application/json", originator: "pi" });
|
|
162
162
|
if (options.catalogAuthMode !== "transport") {
|
|
@@ -167,7 +167,7 @@ export function createOpenAICodexCatalog(baseline, options = {}) {
|
|
|
167
167
|
if (typeof accountId !== "string" || !accountId) {
|
|
168
168
|
try {
|
|
169
169
|
const payload = JSON.parse(atob(credential.access.split(".")[1] ?? ""));
|
|
170
|
-
if (!validateTokenClaims
|
|
170
|
+
if (!validateTokenClaims(payload))
|
|
171
171
|
throw new Error("Missing account ID");
|
|
172
172
|
accountId = payload["https://api.openai.com/auth"].chatgpt_account_id;
|
|
173
173
|
}
|
|
@@ -184,7 +184,7 @@ export function createOpenAICodexCatalog(baseline, options = {}) {
|
|
|
184
184
|
if (!response.ok)
|
|
185
185
|
throw new Error(`Codex model discovery failed (${response.status}).`);
|
|
186
186
|
const catalog = await response.json();
|
|
187
|
-
if (!validateNativeCatalog
|
|
187
|
+
if (!validateNativeCatalog(catalog))
|
|
188
188
|
throw new Error("Codex model discovery returned an invalid catalog.");
|
|
189
189
|
let metadata = [];
|
|
190
190
|
let metadataError;
|