@shenghuabi/openai 1.2.7 → 1.2.9
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/chat/util/get-custom-provider.d.ts +74 -74
- package/define/index.js +8 -5
- package/define/index.js.map +2 -2
- package/define/index.mjs +8 -5
- package/define/index.mjs.map +2 -2
- package/index.js +8 -5
- package/index.js.map +2 -2
- package/index.mjs +8 -5
- package/index.mjs.map +2 -2
- package/package.json +1 -1
|
@@ -18,11 +18,11 @@ export declare const OpenAICompletionsCompatSchema: v.SchemaWithPipe<readonly [v
|
|
|
18
18
|
readonly requiresThinkingAsText: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "思考转文本">, v.DescriptionAction<boolean, "是否将思考过程作为普通文本发送">]>, undefined>;
|
|
19
19
|
readonly requiresReasoningContentOnAssistantMessages: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "推理内容在助手消息中">, v.DescriptionAction<boolean, "是否在助手消息中包含推理内容">]>, undefined>;
|
|
20
20
|
readonly thinkingFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["openai", "openrouter", "deepseek", "together", "zai", "qwen", "qwen-chat-template", "string-thinking", "ant-ling"], undefined>, v.TitleAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "思考格式">, v.DescriptionAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "指定 thinking 标签的序列化格式">]>, undefined>;
|
|
21
|
-
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
22
|
-
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
21
|
+
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "OpenRouter 路由">, v.DescriptionAction<any, "自定义 OpenRouter 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
22
|
+
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "Vercel Gateway 路由">, v.DescriptionAction<any, "自定义 Vercel AI Gateway 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
23
23
|
readonly zaiToolStream: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "ZAI 工具流式">, v.DescriptionAction<boolean, "是否启用 ZAI 平台工具调用的流式输出">]>, undefined>;
|
|
24
24
|
readonly supportsStrictMode: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "严格模式">, v.DescriptionAction<boolean, "是否支持工具的 JSON Schema 严格校验">]>, undefined>;
|
|
25
|
-
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">]>, undefined>;
|
|
25
|
+
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", "anthropic", import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
26
26
|
readonly sendSessionAffinityHeaders: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "发送会话亲和标头">, v.DescriptionAction<boolean, "是否在请求中携带会话亲和性标头">]>, undefined>;
|
|
27
27
|
readonly supportsLongCacheRetention: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "长期缓存保留">, v.DescriptionAction<boolean, "是否支持长期缓存保留策略">]>, undefined>;
|
|
28
28
|
}, undefined>, undefined>, v.TitleAction<{
|
|
@@ -36,8 +36,8 @@ export declare const OpenAICompletionsCompatSchema: v.SchemaWithPipe<readonly [v
|
|
|
36
36
|
requiresThinkingAsText?: boolean | undefined;
|
|
37
37
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
38
38
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
39
|
-
openRouterRouting?:
|
|
40
|
-
vercelGatewayRouting?:
|
|
39
|
+
openRouterRouting?: any;
|
|
40
|
+
vercelGatewayRouting?: any;
|
|
41
41
|
zaiToolStream?: boolean | undefined;
|
|
42
42
|
supportsStrictMode?: boolean | undefined;
|
|
43
43
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -54,8 +54,8 @@ export declare const OpenAICompletionsCompatSchema: v.SchemaWithPipe<readonly [v
|
|
|
54
54
|
requiresThinkingAsText?: boolean | undefined;
|
|
55
55
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
56
56
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
57
|
-
openRouterRouting?:
|
|
58
|
-
vercelGatewayRouting?:
|
|
57
|
+
openRouterRouting?: any;
|
|
58
|
+
vercelGatewayRouting?: any;
|
|
59
59
|
zaiToolStream?: boolean | undefined;
|
|
60
60
|
supportsStrictMode?: boolean | undefined;
|
|
61
61
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -113,11 +113,11 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
113
113
|
readonly requiresThinkingAsText: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "思考转文本">, v.DescriptionAction<boolean, "是否将思考过程作为普通文本发送">]>, undefined>;
|
|
114
114
|
readonly requiresReasoningContentOnAssistantMessages: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "推理内容在助手消息中">, v.DescriptionAction<boolean, "是否在助手消息中包含推理内容">]>, undefined>;
|
|
115
115
|
readonly thinkingFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["openai", "openrouter", "deepseek", "together", "zai", "qwen", "qwen-chat-template", "string-thinking", "ant-ling"], undefined>, v.TitleAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "思考格式">, v.DescriptionAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "指定 thinking 标签的序列化格式">]>, undefined>;
|
|
116
|
-
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
117
|
-
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
116
|
+
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "OpenRouter 路由">, v.DescriptionAction<any, "自定义 OpenRouter 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
117
|
+
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "Vercel Gateway 路由">, v.DescriptionAction<any, "自定义 Vercel AI Gateway 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
118
118
|
readonly zaiToolStream: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "ZAI 工具流式">, v.DescriptionAction<boolean, "是否启用 ZAI 平台工具调用的流式输出">]>, undefined>;
|
|
119
119
|
readonly supportsStrictMode: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "严格模式">, v.DescriptionAction<boolean, "是否支持工具的 JSON Schema 严格校验">]>, undefined>;
|
|
120
|
-
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">]>, undefined>;
|
|
120
|
+
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", "anthropic", import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
121
121
|
readonly sendSessionAffinityHeaders: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "发送会话亲和标头">, v.DescriptionAction<boolean, "是否在请求中携带会话亲和性标头">]>, undefined>;
|
|
122
122
|
readonly supportsLongCacheRetention: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "长期缓存保留">, v.DescriptionAction<boolean, "是否支持长期缓存保留策略">]>, undefined>;
|
|
123
123
|
}, undefined>, undefined>, v.TitleAction<{
|
|
@@ -131,8 +131,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
131
131
|
requiresThinkingAsText?: boolean | undefined;
|
|
132
132
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
133
133
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
134
|
-
openRouterRouting?:
|
|
135
|
-
vercelGatewayRouting?:
|
|
134
|
+
openRouterRouting?: any;
|
|
135
|
+
vercelGatewayRouting?: any;
|
|
136
136
|
zaiToolStream?: boolean | undefined;
|
|
137
137
|
supportsStrictMode?: boolean | undefined;
|
|
138
138
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -149,8 +149,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
149
149
|
requiresThinkingAsText?: boolean | undefined;
|
|
150
150
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
151
151
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
152
|
-
openRouterRouting?:
|
|
153
|
-
vercelGatewayRouting?:
|
|
152
|
+
openRouterRouting?: any;
|
|
153
|
+
vercelGatewayRouting?: any;
|
|
154
154
|
zaiToolStream?: boolean | undefined;
|
|
155
155
|
supportsStrictMode?: boolean | undefined;
|
|
156
156
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -167,8 +167,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
167
167
|
requiresThinkingAsText?: boolean | undefined;
|
|
168
168
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
169
169
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
170
|
-
openRouterRouting?:
|
|
171
|
-
vercelGatewayRouting?:
|
|
170
|
+
openRouterRouting?: any;
|
|
171
|
+
vercelGatewayRouting?: any;
|
|
172
172
|
zaiToolStream?: boolean | undefined;
|
|
173
173
|
supportsStrictMode?: boolean | undefined;
|
|
174
174
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -233,8 +233,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
233
233
|
requiresThinkingAsText?: boolean | undefined;
|
|
234
234
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
235
235
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
236
|
-
openRouterRouting?:
|
|
237
|
-
vercelGatewayRouting?:
|
|
236
|
+
openRouterRouting?: any;
|
|
237
|
+
vercelGatewayRouting?: any;
|
|
238
238
|
zaiToolStream?: boolean | undefined;
|
|
239
239
|
supportsStrictMode?: boolean | undefined;
|
|
240
240
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -263,8 +263,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
263
263
|
requiresThinkingAsText?: boolean | undefined;
|
|
264
264
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
265
265
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
266
|
-
openRouterRouting?:
|
|
267
|
-
vercelGatewayRouting?:
|
|
266
|
+
openRouterRouting?: any;
|
|
267
|
+
vercelGatewayRouting?: any;
|
|
268
268
|
zaiToolStream?: boolean | undefined;
|
|
269
269
|
supportsStrictMode?: boolean | undefined;
|
|
270
270
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -293,8 +293,8 @@ export declare const CompatSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[v.S
|
|
|
293
293
|
requiresThinkingAsText?: boolean | undefined;
|
|
294
294
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
295
295
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
296
|
-
openRouterRouting?:
|
|
297
|
-
vercelGatewayRouting?:
|
|
296
|
+
openRouterRouting?: any;
|
|
297
|
+
vercelGatewayRouting?: any;
|
|
298
298
|
zaiToolStream?: boolean | undefined;
|
|
299
299
|
supportsStrictMode?: boolean | undefined;
|
|
300
300
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -380,11 +380,11 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
380
380
|
readonly requiresThinkingAsText: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "思考转文本">, v.DescriptionAction<boolean, "是否将思考过程作为普通文本发送">]>, undefined>;
|
|
381
381
|
readonly requiresReasoningContentOnAssistantMessages: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "推理内容在助手消息中">, v.DescriptionAction<boolean, "是否在助手消息中包含推理内容">]>, undefined>;
|
|
382
382
|
readonly thinkingFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["openai", "openrouter", "deepseek", "together", "zai", "qwen", "qwen-chat-template", "string-thinking", "ant-ling"], undefined>, v.TitleAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "思考格式">, v.DescriptionAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "指定 thinking 标签的序列化格式">]>, undefined>;
|
|
383
|
-
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
384
|
-
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
383
|
+
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "OpenRouter 路由">, v.DescriptionAction<any, "自定义 OpenRouter 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
384
|
+
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "Vercel Gateway 路由">, v.DescriptionAction<any, "自定义 Vercel AI Gateway 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
385
385
|
readonly zaiToolStream: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "ZAI 工具流式">, v.DescriptionAction<boolean, "是否启用 ZAI 平台工具调用的流式输出">]>, undefined>;
|
|
386
386
|
readonly supportsStrictMode: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "严格模式">, v.DescriptionAction<boolean, "是否支持工具的 JSON Schema 严格校验">]>, undefined>;
|
|
387
|
-
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">]>, undefined>;
|
|
387
|
+
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", "anthropic", import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
388
388
|
readonly sendSessionAffinityHeaders: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "发送会话亲和标头">, v.DescriptionAction<boolean, "是否在请求中携带会话亲和性标头">]>, undefined>;
|
|
389
389
|
readonly supportsLongCacheRetention: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "长期缓存保留">, v.DescriptionAction<boolean, "是否支持长期缓存保留策略">]>, undefined>;
|
|
390
390
|
}, undefined>, undefined>, v.TitleAction<{
|
|
@@ -398,8 +398,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
398
398
|
requiresThinkingAsText?: boolean | undefined;
|
|
399
399
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
400
400
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
401
|
-
openRouterRouting?:
|
|
402
|
-
vercelGatewayRouting?:
|
|
401
|
+
openRouterRouting?: any;
|
|
402
|
+
vercelGatewayRouting?: any;
|
|
403
403
|
zaiToolStream?: boolean | undefined;
|
|
404
404
|
supportsStrictMode?: boolean | undefined;
|
|
405
405
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -416,8 +416,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
416
416
|
requiresThinkingAsText?: boolean | undefined;
|
|
417
417
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
418
418
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
419
|
-
openRouterRouting?:
|
|
420
|
-
vercelGatewayRouting?:
|
|
419
|
+
openRouterRouting?: any;
|
|
420
|
+
vercelGatewayRouting?: any;
|
|
421
421
|
zaiToolStream?: boolean | undefined;
|
|
422
422
|
supportsStrictMode?: boolean | undefined;
|
|
423
423
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -434,8 +434,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
434
434
|
requiresThinkingAsText?: boolean | undefined;
|
|
435
435
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
436
436
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
437
|
-
openRouterRouting?:
|
|
438
|
-
vercelGatewayRouting?:
|
|
437
|
+
openRouterRouting?: any;
|
|
438
|
+
vercelGatewayRouting?: any;
|
|
439
439
|
zaiToolStream?: boolean | undefined;
|
|
440
440
|
supportsStrictMode?: boolean | undefined;
|
|
441
441
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -500,8 +500,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
500
500
|
requiresThinkingAsText?: boolean | undefined;
|
|
501
501
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
502
502
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
503
|
-
openRouterRouting?:
|
|
504
|
-
vercelGatewayRouting?:
|
|
503
|
+
openRouterRouting?: any;
|
|
504
|
+
vercelGatewayRouting?: any;
|
|
505
505
|
zaiToolStream?: boolean | undefined;
|
|
506
506
|
supportsStrictMode?: boolean | undefined;
|
|
507
507
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -530,8 +530,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
530
530
|
requiresThinkingAsText?: boolean | undefined;
|
|
531
531
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
532
532
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
533
|
-
openRouterRouting?:
|
|
534
|
-
vercelGatewayRouting?:
|
|
533
|
+
openRouterRouting?: any;
|
|
534
|
+
vercelGatewayRouting?: any;
|
|
535
535
|
zaiToolStream?: boolean | undefined;
|
|
536
536
|
supportsStrictMode?: boolean | undefined;
|
|
537
537
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -560,8 +560,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
560
560
|
requiresThinkingAsText?: boolean | undefined;
|
|
561
561
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
562
562
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
563
|
-
openRouterRouting?:
|
|
564
|
-
vercelGatewayRouting?:
|
|
563
|
+
openRouterRouting?: any;
|
|
564
|
+
vercelGatewayRouting?: any;
|
|
565
565
|
zaiToolStream?: boolean | undefined;
|
|
566
566
|
supportsStrictMode?: boolean | undefined;
|
|
567
567
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -592,8 +592,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
592
592
|
requiresThinkingAsText?: boolean | undefined;
|
|
593
593
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
594
594
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
595
|
-
openRouterRouting?:
|
|
596
|
-
vercelGatewayRouting?:
|
|
595
|
+
openRouterRouting?: any;
|
|
596
|
+
vercelGatewayRouting?: any;
|
|
597
597
|
zaiToolStream?: boolean | undefined;
|
|
598
598
|
supportsStrictMode?: boolean | undefined;
|
|
599
599
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -622,8 +622,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
622
622
|
requiresThinkingAsText?: boolean | undefined;
|
|
623
623
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
624
624
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
625
|
-
openRouterRouting?:
|
|
626
|
-
vercelGatewayRouting?:
|
|
625
|
+
openRouterRouting?: any;
|
|
626
|
+
vercelGatewayRouting?: any;
|
|
627
627
|
zaiToolStream?: boolean | undefined;
|
|
628
628
|
supportsStrictMode?: boolean | undefined;
|
|
629
629
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -669,8 +669,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
669
669
|
requiresThinkingAsText?: boolean | undefined;
|
|
670
670
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
671
671
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
672
|
-
openRouterRouting?:
|
|
673
|
-
vercelGatewayRouting?:
|
|
672
|
+
openRouterRouting?: any;
|
|
673
|
+
vercelGatewayRouting?: any;
|
|
674
674
|
zaiToolStream?: boolean | undefined;
|
|
675
675
|
supportsStrictMode?: boolean | undefined;
|
|
676
676
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -716,8 +716,8 @@ export declare const ModelSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
716
716
|
requiresThinkingAsText?: boolean | undefined;
|
|
717
717
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
718
718
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
719
|
-
openRouterRouting?:
|
|
720
|
-
vercelGatewayRouting?:
|
|
719
|
+
openRouterRouting?: any;
|
|
720
|
+
vercelGatewayRouting?: any;
|
|
721
721
|
zaiToolStream?: boolean | undefined;
|
|
722
722
|
supportsStrictMode?: boolean | undefined;
|
|
723
723
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -807,11 +807,11 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
807
807
|
readonly requiresThinkingAsText: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "思考转文本">, v.DescriptionAction<boolean, "是否将思考过程作为普通文本发送">]>, undefined>;
|
|
808
808
|
readonly requiresReasoningContentOnAssistantMessages: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "推理内容在助手消息中">, v.DescriptionAction<boolean, "是否在助手消息中包含推理内容">]>, undefined>;
|
|
809
809
|
readonly thinkingFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["openai", "openrouter", "deepseek", "together", "zai", "qwen", "qwen-chat-template", "string-thinking", "ant-ling"], undefined>, v.TitleAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "思考格式">, v.DescriptionAction<"deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking", "指定 thinking 标签的序列化格式">]>, undefined>;
|
|
810
|
-
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
811
|
-
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
810
|
+
readonly openRouterRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "OpenRouter 路由">, v.DescriptionAction<any, "自定义 OpenRouter 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
811
|
+
readonly vercelGatewayRouting: v.OptionalSchema<v.SchemaWithPipe<readonly [v.AnySchema, v.TitleAction<any, "Vercel Gateway 路由">, v.DescriptionAction<any, "自定义 Vercel AI Gateway 的路由配置">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", any, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
812
812
|
readonly zaiToolStream: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "ZAI 工具流式">, v.DescriptionAction<boolean, "是否启用 ZAI 平台工具调用的流式输出">]>, undefined>;
|
|
813
813
|
readonly supportsStrictMode: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "严格模式">, v.DescriptionAction<boolean, "是否支持工具的 JSON Schema 严格校验">]>, undefined>;
|
|
814
|
-
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">]>, undefined>;
|
|
814
|
+
readonly cacheControlFormat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.LiteralSchema<"anthropic", undefined>, v.TitleAction<"anthropic", "缓存控制格式">, v.DescriptionAction<"anthropic", "指定缓存控制的语法格式">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", "anthropic", import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>;
|
|
815
815
|
readonly sendSessionAffinityHeaders: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "发送会话亲和标头">, v.DescriptionAction<boolean, "是否在请求中携带会话亲和性标头">]>, undefined>;
|
|
816
816
|
readonly supportsLongCacheRetention: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.TitleAction<boolean, "长期缓存保留">, v.DescriptionAction<boolean, "是否支持长期缓存保留策略">]>, undefined>;
|
|
817
817
|
}, undefined>, undefined>, v.TitleAction<{
|
|
@@ -825,8 +825,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
825
825
|
requiresThinkingAsText?: boolean | undefined;
|
|
826
826
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
827
827
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
828
|
-
openRouterRouting?:
|
|
829
|
-
vercelGatewayRouting?:
|
|
828
|
+
openRouterRouting?: any;
|
|
829
|
+
vercelGatewayRouting?: any;
|
|
830
830
|
zaiToolStream?: boolean | undefined;
|
|
831
831
|
supportsStrictMode?: boolean | undefined;
|
|
832
832
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -843,8 +843,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
843
843
|
requiresThinkingAsText?: boolean | undefined;
|
|
844
844
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
845
845
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
846
|
-
openRouterRouting?:
|
|
847
|
-
vercelGatewayRouting?:
|
|
846
|
+
openRouterRouting?: any;
|
|
847
|
+
vercelGatewayRouting?: any;
|
|
848
848
|
zaiToolStream?: boolean | undefined;
|
|
849
849
|
supportsStrictMode?: boolean | undefined;
|
|
850
850
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -861,8 +861,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
861
861
|
requiresThinkingAsText?: boolean | undefined;
|
|
862
862
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
863
863
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
864
|
-
openRouterRouting?:
|
|
865
|
-
vercelGatewayRouting?:
|
|
864
|
+
openRouterRouting?: any;
|
|
865
|
+
vercelGatewayRouting?: any;
|
|
866
866
|
zaiToolStream?: boolean | undefined;
|
|
867
867
|
supportsStrictMode?: boolean | undefined;
|
|
868
868
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -927,8 +927,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
927
927
|
requiresThinkingAsText?: boolean | undefined;
|
|
928
928
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
929
929
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
930
|
-
openRouterRouting?:
|
|
931
|
-
vercelGatewayRouting?:
|
|
930
|
+
openRouterRouting?: any;
|
|
931
|
+
vercelGatewayRouting?: any;
|
|
932
932
|
zaiToolStream?: boolean | undefined;
|
|
933
933
|
supportsStrictMode?: boolean | undefined;
|
|
934
934
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -957,8 +957,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
957
957
|
requiresThinkingAsText?: boolean | undefined;
|
|
958
958
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
959
959
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
960
|
-
openRouterRouting?:
|
|
961
|
-
vercelGatewayRouting?:
|
|
960
|
+
openRouterRouting?: any;
|
|
961
|
+
vercelGatewayRouting?: any;
|
|
962
962
|
zaiToolStream?: boolean | undefined;
|
|
963
963
|
supportsStrictMode?: boolean | undefined;
|
|
964
964
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -987,8 +987,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
987
987
|
requiresThinkingAsText?: boolean | undefined;
|
|
988
988
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
989
989
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
990
|
-
openRouterRouting?:
|
|
991
|
-
vercelGatewayRouting?:
|
|
990
|
+
openRouterRouting?: any;
|
|
991
|
+
vercelGatewayRouting?: any;
|
|
992
992
|
zaiToolStream?: boolean | undefined;
|
|
993
993
|
supportsStrictMode?: boolean | undefined;
|
|
994
994
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1019,8 +1019,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1019
1019
|
requiresThinkingAsText?: boolean | undefined;
|
|
1020
1020
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1021
1021
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1022
|
-
openRouterRouting?:
|
|
1023
|
-
vercelGatewayRouting?:
|
|
1022
|
+
openRouterRouting?: any;
|
|
1023
|
+
vercelGatewayRouting?: any;
|
|
1024
1024
|
zaiToolStream?: boolean | undefined;
|
|
1025
1025
|
supportsStrictMode?: boolean | undefined;
|
|
1026
1026
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1049,8 +1049,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1049
1049
|
requiresThinkingAsText?: boolean | undefined;
|
|
1050
1050
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1051
1051
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1052
|
-
openRouterRouting?:
|
|
1053
|
-
vercelGatewayRouting?:
|
|
1052
|
+
openRouterRouting?: any;
|
|
1053
|
+
vercelGatewayRouting?: any;
|
|
1054
1054
|
zaiToolStream?: boolean | undefined;
|
|
1055
1055
|
supportsStrictMode?: boolean | undefined;
|
|
1056
1056
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1096,8 +1096,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1096
1096
|
requiresThinkingAsText?: boolean | undefined;
|
|
1097
1097
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1098
1098
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1099
|
-
openRouterRouting?:
|
|
1100
|
-
vercelGatewayRouting?:
|
|
1099
|
+
openRouterRouting?: any;
|
|
1100
|
+
vercelGatewayRouting?: any;
|
|
1101
1101
|
zaiToolStream?: boolean | undefined;
|
|
1102
1102
|
supportsStrictMode?: boolean | undefined;
|
|
1103
1103
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1143,8 +1143,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1143
1143
|
requiresThinkingAsText?: boolean | undefined;
|
|
1144
1144
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1145
1145
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1146
|
-
openRouterRouting?:
|
|
1147
|
-
vercelGatewayRouting?:
|
|
1146
|
+
openRouterRouting?: any;
|
|
1147
|
+
vercelGatewayRouting?: any;
|
|
1148
1148
|
zaiToolStream?: boolean | undefined;
|
|
1149
1149
|
supportsStrictMode?: boolean | undefined;
|
|
1150
1150
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1190,8 +1190,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1190
1190
|
requiresThinkingAsText?: boolean | undefined;
|
|
1191
1191
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1192
1192
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1193
|
-
openRouterRouting?:
|
|
1194
|
-
vercelGatewayRouting?:
|
|
1193
|
+
openRouterRouting?: any;
|
|
1194
|
+
vercelGatewayRouting?: any;
|
|
1195
1195
|
zaiToolStream?: boolean | undefined;
|
|
1196
1196
|
supportsStrictMode?: boolean | undefined;
|
|
1197
1197
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1243,8 +1243,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1243
1243
|
requiresThinkingAsText?: boolean | undefined;
|
|
1244
1244
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1245
1245
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1246
|
-
openRouterRouting?:
|
|
1247
|
-
vercelGatewayRouting?:
|
|
1246
|
+
openRouterRouting?: any;
|
|
1247
|
+
vercelGatewayRouting?: any;
|
|
1248
1248
|
zaiToolStream?: boolean | undefined;
|
|
1249
1249
|
supportsStrictMode?: boolean | undefined;
|
|
1250
1250
|
cacheControlFormat?: "anthropic" | undefined;
|
|
@@ -1296,8 +1296,8 @@ export declare const ModelConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchem
|
|
|
1296
1296
|
requiresThinkingAsText?: boolean | undefined;
|
|
1297
1297
|
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
|
|
1298
1298
|
thinkingFormat?: "deepseek" | "openai" | "openrouter" | "zai" | "together" | "ant-ling" | "qwen" | "qwen-chat-template" | "string-thinking" | undefined;
|
|
1299
|
-
openRouterRouting?:
|
|
1300
|
-
vercelGatewayRouting?:
|
|
1299
|
+
openRouterRouting?: any;
|
|
1300
|
+
vercelGatewayRouting?: any;
|
|
1301
1301
|
zaiToolStream?: boolean | undefined;
|
|
1302
1302
|
supportsStrictMode?: boolean | undefined;
|
|
1303
1303
|
cacheControlFormat?: "anthropic" | undefined;
|
package/define/index.js
CHANGED
|
@@ -280,16 +280,18 @@ var OpenAICompletionsCompatSchema = v3.pipe(
|
|
|
280
280
|
),
|
|
281
281
|
openRouterRouting: v3.optional(
|
|
282
282
|
v3.pipe(
|
|
283
|
-
v3.
|
|
283
|
+
v3.any(),
|
|
284
284
|
v3.title("OpenRouter 路由"),
|
|
285
|
-
v3.description("自定义 OpenRouter 的路由配置")
|
|
285
|
+
v3.description("自定义 OpenRouter 的路由配置"),
|
|
286
|
+
(0, import_view_angular_core.renderConfig)({ hidden: true })
|
|
286
287
|
)
|
|
287
288
|
),
|
|
288
289
|
vercelGatewayRouting: v3.optional(
|
|
289
290
|
v3.pipe(
|
|
290
|
-
v3.
|
|
291
|
+
v3.any(),
|
|
291
292
|
v3.title("Vercel Gateway 路由"),
|
|
292
|
-
v3.description("自定义 Vercel AI Gateway 的路由配置")
|
|
293
|
+
v3.description("自定义 Vercel AI Gateway 的路由配置"),
|
|
294
|
+
(0, import_view_angular_core.renderConfig)({ hidden: true })
|
|
293
295
|
)
|
|
294
296
|
),
|
|
295
297
|
zaiToolStream: v3.optional(
|
|
@@ -310,7 +312,8 @@ var OpenAICompletionsCompatSchema = v3.pipe(
|
|
|
310
312
|
v3.pipe(
|
|
311
313
|
v3.literal("anthropic"),
|
|
312
314
|
v3.title("缓存控制格式"),
|
|
313
|
-
v3.description("指定缓存控制的语法格式")
|
|
315
|
+
v3.description("指定缓存控制的语法格式"),
|
|
316
|
+
(0, import_view_angular_core.renderConfig)({ hidden: true })
|
|
314
317
|
)
|
|
315
318
|
),
|
|
316
319
|
sendSessionAffinityHeaders: v3.optional(
|
package/define/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/openai/define/index.ts", "../../../packages/openai/chat/message.define.ts", "../../../packages/openai/chat/util/get-custom-provider.ts", "../../../packages/openai/chat/provider.define.ts"],
|
|
4
|
-
"sourcesContent": ["export * from '../chat/message.define';\nexport * from '../chat/util/get-custom-provider'", "import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport const ChatMessageCommonItemDefine = v.union([\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import * as v from 'valibot';\n\nimport { getModel, Model } from '@earendil-works/pi-ai';\nimport { KnownProviderDefine } from '../provider.define';\nimport {\n hideWhen,\n renderConfig,\n setAlias,\n setComponent,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\n\nfunction getCustomProvider<\n T extends 'openai-completions' | 'openai-responses' | 'anthropic-messages',\n>(\n compat: T,\n model: string,\n name: string,\n input: Omit<Model<T>, 'api' | 'id' | 'name'>,\n) {\n return { ...input, id: model, api: compat, name } satisfies Model<T>;\n}\nexport function getModelConfig(input: ModelConfigInputType) {\n if (input.provider === ('faux' as any)) {\n return {\n model: input.config as Model<any>,\n config: input as ModelConfigOutputType,\n };\n }\n const config = v.parse(ModelConfigDefine, input);\n if (\n config.provider === 'openai-completions' ||\n config.provider === 'openai-responses' ||\n config.provider === 'anthropic-messages'\n ) {\n return {\n model: getCustomProvider(\n config.provider,\n config.model,\n config.name,\n config.config!,\n ),\n config: config,\n };\n }\n\n return {\n model: getModel(config.provider, config.model as any as never),\n config: config,\n };\n}\nexport const ThinkingLevelSchema = v.pipe(\n v.picklist(['minimal', 'low', 'medium', 'high', 'xhigh']),\n v.title('思考等级'),\n v.description('模型思考的详细程度,从最小到最大'),\n);\n\nexport const ModelThinkingLevelSchema = v.pipe(\n v.picklist(['off', 'minimal', 'low', 'medium', 'high', 'xhigh']),\n v.title('模型思考等级'),\n v.description('关闭或设置模型思考的详细程度'),\n);\n\n// --- Compat schemas (conditional on TApi) ---\n\n/** OpenAI Completions compatibility overrides */\nexport const OpenAICompletionsCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsStore: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持存储'),\n v.description('是否支持服务端会话存储'),\n ),\n ),\n supportsDeveloperRole: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持开发者角色'),\n v.description('是否支持 developer 系统消息角色'),\n ),\n ),\n supportsReasoningEffort: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持推理努力'),\n v.description('是否支持 reasoning_effort 参数'),\n ),\n ),\n supportsUsageInStreaming: v.optional(\n v.pipe(\n v.boolean(),\n v.title('流式用量'),\n v.description('流式输出中是否返回 usage 信息'),\n ),\n ),\n maxTokensField: v.optional(\n v.pipe(\n v.picklist(['max_completion_tokens', 'max_tokens']),\n v.title('最大 token 字段名'),\n v.description('指定最大 token 参数使用的是哪个字段名'),\n ),\n ),\n requiresToolResultName: v.optional(\n v.pipe(\n v.boolean(),\n v.title('需要工具结果名称'),\n v.description('是否要求工具结果消息包含 name 字段'),\n ),\n ),\n requiresAssistantAfterToolResult: v.optional(\n v.pipe(\n v.boolean(),\n v.title('需要助手回复'),\n v.description('工具结果后是否需要助手消息跟进'),\n ),\n ),\n requiresThinkingAsText: v.optional(\n v.pipe(\n v.boolean(),\n v.title('思考转文本'),\n v.description('是否将思考过程作为普通文本发送'),\n ),\n ),\n requiresReasoningContentOnAssistantMessages: v.optional(\n v.pipe(\n v.boolean(),\n v.title('推理内容在助手消息中'),\n v.description('是否在助手消息中包含推理内容'),\n ),\n ),\n thinkingFormat: v.optional(\n v.pipe(\n v.picklist([\n 'openai',\n 'openrouter',\n 'deepseek',\n 'together',\n 'zai',\n 'qwen',\n 'qwen-chat-template',\n 'string-thinking',\n 'ant-ling',\n ]),\n v.title('思考格式'),\n v.description('指定 thinking 标签的序列化格式'),\n ),\n ),\n openRouterRouting: v.optional(\n v.pipe(\n v.unknown(),\n v.title('OpenRouter 路由'),\n v.description('自定义 OpenRouter 的路由配置'),\n ),\n ),\n vercelGatewayRouting: v.optional(\n v.pipe(\n v.unknown(),\n v.title('Vercel Gateway 路由'),\n v.description('自定义 Vercel AI Gateway 的路由配置'),\n ),\n ),\n zaiToolStream: v.optional(\n v.pipe(\n v.boolean(),\n v.title('ZAI 工具流式'),\n v.description('是否启用 ZAI 平台工具调用的流式输出'),\n ),\n ),\n supportsStrictMode: v.optional(\n v.pipe(\n v.boolean(),\n v.title('严格模式'),\n v.description('是否支持工具的 JSON Schema 严格校验'),\n ),\n ),\n cacheControlFormat: v.optional(\n v.pipe(\n v.literal('anthropic'),\n v.title('缓存控制格式'),\n v.description('指定缓存控制的语法格式'),\n ),\n ),\n sendSessionAffinityHeaders: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话亲和标头'),\n v.description('是否在请求中携带会话亲和性标头'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n }),\n ),\n v.title('OpenAI Completions 兼容配置'),\n v.description('针对 OpenAI Completions API 的兼容性覆写选项'),\n);\n\n/** OpenAI Responses compatibility overrides */\nexport const OpenAIResponsesCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsDeveloperRole: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持开发者角色'),\n v.description('是否支持 developer 系统消息角色'),\n ),\n ),\n sendSessionIdHeader: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话 ID 标头'),\n v.description('是否在请求中携带 X-Session-ID 标头'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n }),\n ),\n v.title('OpenAI Responses 兼容配置'),\n v.description('针对 OpenAI Responses API 的兼容性覆写选项'),\n);\n\n/** Anthropic Messages compatibility overrides */\nexport const AnthropicMessagesCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsEagerToolInputStreaming: v.optional(\n v.pipe(\n v.boolean(),\n v.title(' eagerly 工具流式'),\n v.description('是否支持工具调用的 eager 模式流式输出'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n sendSessionAffinityHeaders: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话亲和标头'),\n v.description('是否在请求中携带会话亲和性标头'),\n ),\n ),\n supportsCacheControlOnTools: v.optional(\n v.pipe(\n v.boolean(),\n v.title('工具缓存控制'),\n v.description('是否支持在 tool_use 消息中使用 cache_control'),\n ),\n ),\n supportsTemperature: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持温度参数'),\n v.description('模型/接口是否支持 temperature 参数'),\n ),\n ),\n forceAdaptiveThinking: v.optional(\n v.pipe(\n v.boolean(),\n v.title('强制自适应思考'),\n v.description('是否强制启用 adaptive thinking 模式'),\n ),\n ),\n allowEmptySignature: v.optional(\n v.pipe(\n v.boolean(),\n v.title('允许空签名'),\n v.description('是否允许工具调用不指定签名(sha256)'),\n ),\n ),\n }),\n ),\n v.title('Anthropic Messages 兼容配置'),\n v.description('针对 Anthropic Messages API 的兼容性覆写选项'),\n);\n\n// Generic compat schema (union of all compat types)\nexport const CompatSchema = v.pipe(\n v.union([\n v.pipe(\n OpenAICompletionsCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'openai-completions'),\n );\n },\n }),\n ),\n v.pipe(\n OpenAIResponsesCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'openai-responses'),\n );\n },\n }),\n ),\n v.pipe(\n AnthropicMessagesCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'anthropic-messages'),\n );\n },\n }),\n ),\n ]),\n setComponent('object'),\n v.title('兼容配置'),\n v.description(\n '模型 API 兼容性覆写选项,支持 OpenAI Completions、OpenAI Responses、Anthropic Messages 三种格式',\n ),\n);\n\n// --- Input array: (\"text\" | \"image\")[] ---\n\nexport const InputChoiceSchema = v.pipe(\n v.picklist(['text', 'image']),\n v.title('输入类型'),\n v.description('支持的输入模态类型'),\n);\nexport const InputSchema = v.pipe(\n v.array(InputChoiceSchema),\n v.title('输入类型列表'),\n v.description('该模型支持的用户输入类型,如 text 文本或 image 图片'),\n);\n\n// --- Headers: Record<string, string> ---\n\nconst HeadersSchema = v.pipe(\n v.record(v.string(), v.string()),\n v.title('自定义请求头'),\n v.description('额外的 HTTP 请求头键值对配置'),\n renderConfig({ hidden: true }),\n);\n\n// --- Model schema (non-generic) ---\n\n/** Cost sub-schema */\nconst CostSchema = v.pipe(\n v.optional(\n v.object({\n input: v.pipe(\n v.number(),\n v.title('输入单价'),\n v.description('每 token 输入费用'),\n ),\n output: v.pipe(\n v.number(),\n v.title('输出单价'),\n v.description('每 token 输出费用'),\n ),\n cacheRead: v.pipe(\n v.number(),\n v.title('缓存读取单价'),\n v.description('从缓存读取每 token 的费用'),\n ),\n cacheWrite: v.pipe(\n v.number(),\n v.title('缓存写入单价'),\n v.description('写入缓存每 token 的费用'),\n ),\n }),\n { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n ),\n v.title('费用配置'),\n v.description('模型各操作类型的 token 计价标准'),\n);\n\n/** Thinking level map: Partial<Record<ModelThinkingLevel, string | null>> */\nconst ThinkingLevelMapSchema = v.pipe(\n v.record(\n ModelThinkingLevelSchema,\n v.pipe(\n v.nullish(v.string()),\n v.title('配置值'),\n v.description('对应思考等级的具体配置字符串,null 表示未设置'),\n ),\n ),\n v.title('思考等级配置映射'),\n v.description('各思考等级对应的具体配置参数映射'),\n);\n\n/**\n * Model schema for pi-ai models.\n * Matches `Model<TApi extends Api>` but without generic type preservation\n * at runtime — compat accepts any of the three compat variants via union.\n */\nexport const ModelSchema = v.pipe(\n v.object({\n provider: v.pipe(\n v.optional(v.string(), 'default'),\n v.title('厂商'),\n v.description('模型提供商,如 openai / anthropic / llama'),\n ),\n baseUrl: v.pipe(\n v.string(),\n v.title('基础 URL'),\n v.description('API 请求的基础地址'),\n ),\n reasoning: v.pipe(\n v.optional(v.boolean(), false),\n v.title('支持推理'),\n v.description('该模型是否支持思考/推理模式'),\n ),\n // thinkingLevelMap: v.optional(\n // v.pipe(\n // v.optional(ThinkingLevelMapSchema),\n // v.title('思考等级配置'),\n // v.description('各思考等级的具体参数配置映射'),\n // ),\n // ),\n input: v.pipe(\n v.optional(InputSchema, ['text', 'image']),\n v.title('输入类型'),\n v.description('支持的输入模态类型'),\n ),\n cost: v.pipe(\n CostSchema,\n v.title('费用配置'),\n v.description('模型 token 计价标准'),\n ),\n contextWindow: v.pipe(\n v.pipe(v.optional(v.number(), 99999999)),\n v.title('上下文窗口'),\n v.description('模型支持的上下文最大 token 数'),\n ),\n maxTokens: v.pipe(\n v.pipe(v.optional(v.number(), 99999999)),\n v.title('最大输出 tokens'),\n v.description('单次请求允许的最大输出 token 数'),\n ),\n headers: v.optional(\n v.pipe(\n v.optional(HeadersSchema),\n v.title('自定义请求头'),\n v.description('额外的 HTTP 请求头配置'),\n ),\n ),\n compat: v.pipe(\n v.optional(CompatSchema, { supportsDeveloperRole: false }),\n v.title('兼容配置'),\n v.description('API 兼容性覆写选项'),\n ),\n }),\n v.title('模型定义'),\n v.description(\n 'pi-ai 模型的核心配置结构,包含模型标识、API 参数、费用及兼容性设置',\n ),\n);\n\nexport type ModelInput = v.InferInput<typeof ModelSchema>;\nexport type ModelOutput = v.InferOutput<typeof ModelSchema>;\n\n// --- ImagesModel schema ---\n\n/** Output array for image models: (\"text\" | \"image\")[] */\nexport const OutputSchema = InputSchema; // same structure\n\nexport const ModelConfigDefine = v.pipe(\n v.object({\n provider: v.pipe(KnownProviderDefine, setAlias('provider')),\n model: v.pipe(v.string(), v.title('模型名')),\n name: v.pipe(\n v.optional(v.string()),\n v.title('配置名'),\n v.description('模型的配置名称(默认为模型名)'),\n ),\n /** provider是自定义时使用 */\n apiKey: v.pipe(v.optional(v.string()), v.title('apiKey')),\n config: v.pipe(\n v.optional(ModelSchema),\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['..', 'provider']] }).pipe(\n map(\n ({ list: [value] }) =>\n !(\n value === 'openai-completions' ||\n value === 'openai-responses' ||\n value === 'anthropic-messages'\n ),\n ),\n );\n },\n }),\n ),\n }),\n v.transform((item) => ({ ...item, name: item.name ?? item.model })),\n);\n\nexport type ModelConfigInputType = v.InferInput<typeof ModelConfigDefine>;\nexport type ModelConfigOutputType = v.InferOutput<typeof ModelConfigDefine>;\n", "import * as v from 'valibot';\nimport { KnownProvider } from '@earendil-works/pi-ai';\nexport const KnownProviderDefine = v.pipe(\n v.picklist([\n 'amazon-bedrock',\n 'anthropic',\n 'google',\n 'google-vertex',\n 'openai',\n 'azure-openai-responses',\n 'openai-codex',\n 'deepseek',\n 'github-copilot',\n 'xai',\n 'groq',\n 'cerebras',\n 'openrouter',\n 'vercel-ai-gateway',\n 'zai',\n 'mistral',\n 'minimax',\n 'minimax-cn',\n 'moonshotai',\n 'moonshotai-cn',\n 'huggingface',\n 'fireworks',\n 'together',\n 'opencode',\n 'opencode-go',\n 'kimi-coding',\n 'cloudflare-workers-ai',\n 'cloudflare-ai-gateway',\n 'xiaomi',\n 'xiaomi-token-plan-cn',\n 'xiaomi-token-plan-ams',\n 'xiaomi-token-plan-sgp',\n 'ant-ling',\n 'nvidia',\n 'zai-coding-cn',\n /** 自定义 */\n 'openai-completions',\n 'openai-responses',\n 'anthropic-messages',\n ]),\n v.title('提供商'),\n v.description(`'openai-completions','openai-responses','anthropic-messages',为自定义提供商`),\n);\n\nexport type KnownProviderType = v.InferOutput<typeof KnownProviderDefine>;\ntype D2T = KnownProvider extends KnownProviderType ? true : false;\ntype T2D = KnownProviderType extends KnownProvider ? true : false;\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export * from '../chat/message.define';\nexport * from '../chat/util/get-custom-provider'", "import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport const ChatMessageCommonItemDefine = v.union([\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import * as v from 'valibot';\n\nimport { getModel, Model } from '@earendil-works/pi-ai';\nimport { KnownProviderDefine } from '../provider.define';\nimport {\n hideWhen,\n renderConfig,\n setAlias,\n setComponent,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\n\nfunction getCustomProvider<\n T extends 'openai-completions' | 'openai-responses' | 'anthropic-messages',\n>(\n compat: T,\n model: string,\n name: string,\n input: Omit<Model<T>, 'api' | 'id' | 'name'>,\n) {\n return { ...input, id: model, api: compat, name } satisfies Model<T>;\n}\nexport function getModelConfig(input: ModelConfigInputType) {\n if (input.provider === ('faux' as any)) {\n return {\n model: input.config as Model<any>,\n config: input as ModelConfigOutputType,\n };\n }\n const config = v.parse(ModelConfigDefine, input);\n if (\n config.provider === 'openai-completions' ||\n config.provider === 'openai-responses' ||\n config.provider === 'anthropic-messages'\n ) {\n return {\n model: getCustomProvider(\n config.provider,\n config.model,\n config.name,\n config.config!,\n ),\n config: config,\n };\n }\n\n return {\n model: getModel(config.provider, config.model as any as never),\n config: config,\n };\n}\nexport const ThinkingLevelSchema = v.pipe(\n v.picklist(['minimal', 'low', 'medium', 'high', 'xhigh']),\n v.title('思考等级'),\n v.description('模型思考的详细程度,从最小到最大'),\n);\n\nexport const ModelThinkingLevelSchema = v.pipe(\n v.picklist(['off', 'minimal', 'low', 'medium', 'high', 'xhigh']),\n v.title('模型思考等级'),\n v.description('关闭或设置模型思考的详细程度'),\n);\n\n// --- Compat schemas (conditional on TApi) ---\n\n/** OpenAI Completions compatibility overrides */\nexport const OpenAICompletionsCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsStore: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持存储'),\n v.description('是否支持服务端会话存储'),\n ),\n ),\n supportsDeveloperRole: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持开发者角色'),\n v.description('是否支持 developer 系统消息角色'),\n ),\n ),\n supportsReasoningEffort: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持推理努力'),\n v.description('是否支持 reasoning_effort 参数'),\n ),\n ),\n supportsUsageInStreaming: v.optional(\n v.pipe(\n v.boolean(),\n v.title('流式用量'),\n v.description('流式输出中是否返回 usage 信息'),\n ),\n ),\n maxTokensField: v.optional(\n v.pipe(\n v.picklist(['max_completion_tokens', 'max_tokens']),\n v.title('最大 token 字段名'),\n v.description('指定最大 token 参数使用的是哪个字段名'),\n ),\n ),\n requiresToolResultName: v.optional(\n v.pipe(\n v.boolean(),\n v.title('需要工具结果名称'),\n v.description('是否要求工具结果消息包含 name 字段'),\n ),\n ),\n requiresAssistantAfterToolResult: v.optional(\n v.pipe(\n v.boolean(),\n v.title('需要助手回复'),\n v.description('工具结果后是否需要助手消息跟进'),\n ),\n ),\n requiresThinkingAsText: v.optional(\n v.pipe(\n v.boolean(),\n v.title('思考转文本'),\n v.description('是否将思考过程作为普通文本发送'),\n ),\n ),\n requiresReasoningContentOnAssistantMessages: v.optional(\n v.pipe(\n v.boolean(),\n v.title('推理内容在助手消息中'),\n v.description('是否在助手消息中包含推理内容'),\n ),\n ),\n thinkingFormat: v.optional(\n v.pipe(\n v.picklist([\n 'openai',\n 'openrouter',\n 'deepseek',\n 'together',\n 'zai',\n 'qwen',\n 'qwen-chat-template',\n 'string-thinking',\n 'ant-ling',\n ]),\n v.title('思考格式'),\n v.description('指定 thinking 标签的序列化格式'),\n ),\n ),\n openRouterRouting: v.optional(\n v.pipe(\n v.any(),\n v.title('OpenRouter 路由'),\n v.description('自定义 OpenRouter 的路由配置'),\n renderConfig({ hidden: true }),\n ),\n ),\n vercelGatewayRouting: v.optional(\n v.pipe(\n v.any(),\n v.title('Vercel Gateway 路由'),\n v.description('自定义 Vercel AI Gateway 的路由配置'),\n renderConfig({ hidden: true }),\n ),\n ),\n zaiToolStream: v.optional(\n v.pipe(\n v.boolean(),\n v.title('ZAI 工具流式'),\n v.description('是否启用 ZAI 平台工具调用的流式输出'),\n ),\n ),\n supportsStrictMode: v.optional(\n v.pipe(\n v.boolean(),\n v.title('严格模式'),\n v.description('是否支持工具的 JSON Schema 严格校验'),\n ),\n ),\n cacheControlFormat: v.optional(\n v.pipe(\n v.literal('anthropic'),\n v.title('缓存控制格式'),\n v.description('指定缓存控制的语法格式'),\n renderConfig({ hidden: true }),\n ),\n ),\n sendSessionAffinityHeaders: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话亲和标头'),\n v.description('是否在请求中携带会话亲和性标头'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n }),\n ),\n v.title('OpenAI Completions 兼容配置'),\n v.description('针对 OpenAI Completions API 的兼容性覆写选项'),\n);\n\n/** OpenAI Responses compatibility overrides */\nexport const OpenAIResponsesCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsDeveloperRole: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持开发者角色'),\n v.description('是否支持 developer 系统消息角色'),\n ),\n ),\n sendSessionIdHeader: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话 ID 标头'),\n v.description('是否在请求中携带 X-Session-ID 标头'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n }),\n ),\n v.title('OpenAI Responses 兼容配置'),\n v.description('针对 OpenAI Responses API 的兼容性覆写选项'),\n);\n\n/** Anthropic Messages compatibility overrides */\nexport const AnthropicMessagesCompatSchema = v.pipe(\n v.optional(\n v.object({\n supportsEagerToolInputStreaming: v.optional(\n v.pipe(\n v.boolean(),\n v.title(' eagerly 工具流式'),\n v.description('是否支持工具调用的 eager 模式流式输出'),\n ),\n ),\n supportsLongCacheRetention: v.optional(\n v.pipe(\n v.boolean(),\n v.title('长期缓存保留'),\n v.description('是否支持长期缓存保留策略'),\n ),\n ),\n sendSessionAffinityHeaders: v.optional(\n v.pipe(\n v.boolean(),\n v.title('发送会话亲和标头'),\n v.description('是否在请求中携带会话亲和性标头'),\n ),\n ),\n supportsCacheControlOnTools: v.optional(\n v.pipe(\n v.boolean(),\n v.title('工具缓存控制'),\n v.description('是否支持在 tool_use 消息中使用 cache_control'),\n ),\n ),\n supportsTemperature: v.optional(\n v.pipe(\n v.boolean(),\n v.title('支持温度参数'),\n v.description('模型/接口是否支持 temperature 参数'),\n ),\n ),\n forceAdaptiveThinking: v.optional(\n v.pipe(\n v.boolean(),\n v.title('强制自适应思考'),\n v.description('是否强制启用 adaptive thinking 模式'),\n ),\n ),\n allowEmptySignature: v.optional(\n v.pipe(\n v.boolean(),\n v.title('允许空签名'),\n v.description('是否允许工具调用不指定签名(sha256)'),\n ),\n ),\n }),\n ),\n v.title('Anthropic Messages 兼容配置'),\n v.description('针对 Anthropic Messages API 的兼容性覆写选项'),\n);\n\n// Generic compat schema (union of all compat types)\nexport const CompatSchema = v.pipe(\n v.union([\n v.pipe(\n OpenAICompletionsCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'openai-completions'),\n );\n },\n }),\n ),\n v.pipe(\n OpenAIResponsesCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'openai-responses'),\n );\n },\n }),\n ),\n v.pipe(\n AnthropicMessagesCompatSchema,\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['@provider']] }).pipe(\n map((item) => item.list[0] !== 'anthropic-messages'),\n );\n },\n }),\n ),\n ]),\n setComponent('object'),\n v.title('兼容配置'),\n v.description(\n '模型 API 兼容性覆写选项,支持 OpenAI Completions、OpenAI Responses、Anthropic Messages 三种格式',\n ),\n);\n\n// --- Input array: (\"text\" | \"image\")[] ---\n\nexport const InputChoiceSchema = v.pipe(\n v.picklist(['text', 'image']),\n v.title('输入类型'),\n v.description('支持的输入模态类型'),\n);\nexport const InputSchema = v.pipe(\n v.array(InputChoiceSchema),\n v.title('输入类型列表'),\n v.description('该模型支持的用户输入类型,如 text 文本或 image 图片'),\n);\n\n// --- Headers: Record<string, string> ---\n\nconst HeadersSchema = v.pipe(\n v.record(v.string(), v.string()),\n v.title('自定义请求头'),\n v.description('额外的 HTTP 请求头键值对配置'),\n renderConfig({ hidden: true }),\n);\n\n// --- Model schema (non-generic) ---\n\n/** Cost sub-schema */\nconst CostSchema = v.pipe(\n v.optional(\n v.object({\n input: v.pipe(\n v.number(),\n v.title('输入单价'),\n v.description('每 token 输入费用'),\n ),\n output: v.pipe(\n v.number(),\n v.title('输出单价'),\n v.description('每 token 输出费用'),\n ),\n cacheRead: v.pipe(\n v.number(),\n v.title('缓存读取单价'),\n v.description('从缓存读取每 token 的费用'),\n ),\n cacheWrite: v.pipe(\n v.number(),\n v.title('缓存写入单价'),\n v.description('写入缓存每 token 的费用'),\n ),\n }),\n { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n ),\n v.title('费用配置'),\n v.description('模型各操作类型的 token 计价标准'),\n);\n\n/** Thinking level map: Partial<Record<ModelThinkingLevel, string | null>> */\nconst ThinkingLevelMapSchema = v.pipe(\n v.record(\n ModelThinkingLevelSchema,\n v.pipe(\n v.nullish(v.string()),\n v.title('配置值'),\n v.description('对应思考等级的具体配置字符串,null 表示未设置'),\n ),\n ),\n v.title('思考等级配置映射'),\n v.description('各思考等级对应的具体配置参数映射'),\n);\n\n/**\n * Model schema for pi-ai models.\n * Matches `Model<TApi extends Api>` but without generic type preservation\n * at runtime — compat accepts any of the three compat variants via union.\n */\nexport const ModelSchema = v.pipe(\n v.object({\n provider: v.pipe(\n v.optional(v.string(), 'default'),\n v.title('厂商'),\n v.description('模型提供商,如 openai / anthropic / llama'),\n ),\n baseUrl: v.pipe(\n v.string(),\n v.title('基础 URL'),\n v.description('API 请求的基础地址'),\n ),\n reasoning: v.pipe(\n v.optional(v.boolean(), false),\n v.title('支持推理'),\n v.description('该模型是否支持思考/推理模式'),\n ),\n // thinkingLevelMap: v.optional(\n // v.pipe(\n // v.optional(ThinkingLevelMapSchema),\n // v.title('思考等级配置'),\n // v.description('各思考等级的具体参数配置映射'),\n // ),\n // ),\n input: v.pipe(\n v.optional(InputSchema, ['text', 'image']),\n v.title('输入类型'),\n v.description('支持的输入模态类型'),\n ),\n cost: v.pipe(\n CostSchema,\n v.title('费用配置'),\n v.description('模型 token 计价标准'),\n ),\n contextWindow: v.pipe(\n v.pipe(v.optional(v.number(), 99999999)),\n v.title('上下文窗口'),\n v.description('模型支持的上下文最大 token 数'),\n ),\n maxTokens: v.pipe(\n v.pipe(v.optional(v.number(), 99999999)),\n v.title('最大输出 tokens'),\n v.description('单次请求允许的最大输出 token 数'),\n ),\n headers: v.optional(\n v.pipe(\n v.optional(HeadersSchema),\n v.title('自定义请求头'),\n v.description('额外的 HTTP 请求头配置'),\n ),\n ),\n compat: v.pipe(\n v.optional(CompatSchema, { supportsDeveloperRole: false }),\n v.title('兼容配置'),\n v.description('API 兼容性覆写选项'),\n ),\n }),\n v.title('模型定义'),\n v.description(\n 'pi-ai 模型的核心配置结构,包含模型标识、API 参数、费用及兼容性设置',\n ),\n);\n\nexport type ModelInput = v.InferInput<typeof ModelSchema>;\nexport type ModelOutput = v.InferOutput<typeof ModelSchema>;\n\n// --- ImagesModel schema ---\n\n/** Output array for image models: (\"text\" | \"image\")[] */\nexport const OutputSchema = InputSchema; // same structure\n\nexport const ModelConfigDefine = v.pipe(\n v.object({\n provider: v.pipe(KnownProviderDefine, setAlias('provider')),\n model: v.pipe(v.string(), v.title('模型名')),\n name: v.pipe(\n v.optional(v.string()),\n v.title('配置名'),\n v.description('模型的配置名称(默认为模型名)'),\n ),\n /** provider是自定义时使用 */\n apiKey: v.pipe(v.optional(v.string()), v.title('apiKey')),\n config: v.pipe(\n v.optional(ModelSchema),\n hideWhen({\n disabled: true,\n listen(fn, field) {\n return fn({ list: [['..', 'provider']] }).pipe(\n map(\n ({ list: [value] }) =>\n !(\n value === 'openai-completions' ||\n value === 'openai-responses' ||\n value === 'anthropic-messages'\n ),\n ),\n );\n },\n }),\n ),\n }),\n v.transform((item) => ({ ...item, name: item.name ?? item.model })),\n);\n\nexport type ModelConfigInputType = v.InferInput<typeof ModelConfigDefine>;\nexport type ModelConfigOutputType = v.InferOutput<typeof ModelConfigDefine>;\n", "import * as v from 'valibot';\nimport { KnownProvider } from '@earendil-works/pi-ai';\nexport const KnownProviderDefine = v.pipe(\n v.picklist([\n 'amazon-bedrock',\n 'anthropic',\n 'google',\n 'google-vertex',\n 'openai',\n 'azure-openai-responses',\n 'openai-codex',\n 'deepseek',\n 'github-copilot',\n 'xai',\n 'groq',\n 'cerebras',\n 'openrouter',\n 'vercel-ai-gateway',\n 'zai',\n 'mistral',\n 'minimax',\n 'minimax-cn',\n 'moonshotai',\n 'moonshotai-cn',\n 'huggingface',\n 'fireworks',\n 'together',\n 'opencode',\n 'opencode-go',\n 'kimi-coding',\n 'cloudflare-workers-ai',\n 'cloudflare-ai-gateway',\n 'xiaomi',\n 'xiaomi-token-plan-cn',\n 'xiaomi-token-plan-ams',\n 'xiaomi-token-plan-sgp',\n 'ant-ling',\n 'nvidia',\n 'zai-coding-cn',\n /** 自定义 */\n 'openai-completions',\n 'openai-responses',\n 'anthropic-messages',\n ]),\n v.title('提供商'),\n v.description(`'openai-completions','openai-responses','anthropic-messages',为自定义提供商`),\n);\n\nexport type KnownProviderType = v.InferOutput<typeof KnownProviderDefine>;\ntype D2T = KnownProvider extends KnownProviderType ? true : false;\ntype T2D = KnownProviderType extends KnownProvider ? true : false;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["v", "v"]
|
|
7
7
|
}
|