feat(comfy-cloud): 站点预设模板新增 Comfy Cloud
siteInitializationPresets 共享契约(ts/js/d.ts)加 comfy-cloud 预设: platform=comfy_cloud, defaultUrl=https://cloud.comfy.org, 自动填充官方地址。 platform 联合类型扩 'comfy_cloud';urlMatcher + Rust detect_site_platform 同步识别。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1409,6 +1409,9 @@ fn detect_site_platform(url: &str) -> (&'static str, Option<&'static str>) {
|
||||
{
|
||||
return ("openai", Some("volcengine-ark-openai"));
|
||||
}
|
||||
if lower.starts_with("https://cloud.comfy.org") {
|
||||
return ("comfy_cloud", Some("comfy-cloud"));
|
||||
}
|
||||
|
||||
if lower.contains("anthropic") || lower.contains("claude") {
|
||||
return ("claude", None);
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
export interface SiteInitializationPreset {
|
||||
id: string;
|
||||
label: string;
|
||||
platform: 'openai' | 'claude';
|
||||
platform: 'openai' | 'claude' | 'comfy_cloud';
|
||||
defaultUrl: string;
|
||||
initialSegment: 'session' | 'apikey';
|
||||
description?: string;
|
||||
@@ -12,5 +12,5 @@ export declare function getSiteInitializationPreset(id?: string | null): SiteIni
|
||||
export declare function listSiteInitializationPresets(): SiteInitializationPreset[];
|
||||
export declare function detectSiteInitializationPreset(url: string, knownPlatform?: string): {
|
||||
id: string;
|
||||
platform: 'openai' | 'claude';
|
||||
platform: 'openai' | 'claude' | 'comfy_cloud';
|
||||
} | null;
|
||||
|
||||
@@ -130,6 +130,16 @@ const presets = [
|
||||
recommendedSkipModelFetch: true,
|
||||
recommendedModels: [],
|
||||
},
|
||||
{
|
||||
id: 'comfy-cloud',
|
||||
label: 'Comfy Cloud (工作流执行)',
|
||||
platform: 'comfy_cloud',
|
||||
defaultUrl: 'https://cloud.comfy.org',
|
||||
initialSegment: 'apikey',
|
||||
description: 'Comfy Cloud 工作流执行 API;API Key 填 X-API-Key,经 BoosAPI /comfy-cloud 适配端点供 Pixelle 等调用。',
|
||||
recommendedSkipModelFetch: true,
|
||||
recommendedModels: [],
|
||||
},
|
||||
];
|
||||
const urlMatchers = [
|
||||
{ urlPrefix: 'https://coding.dashscope.aliyuncs.com/v1', id: 'codingplan-openai', platform: 'openai' },
|
||||
@@ -145,6 +155,7 @@ const urlMatchers = [
|
||||
{ urlPrefix: 'https://api-inference.modelscope.cn', id: 'modelscope-claude', platform: 'claude' },
|
||||
{ urlPrefix: 'https://ark.cn-beijing.volces.com/api/coding/v3', id: 'doubao-coding-openai', platform: 'openai' },
|
||||
{ urlPrefix: 'https://ark.cn-beijing.volces.com/api/v3', id: 'volcengine-ark-openai', platform: 'openai', stripTrailingSlash: true },
|
||||
{ urlPrefix: 'https://cloud.comfy.org', id: 'comfy-cloud', platform: 'comfy_cloud', stripTrailingSlash: true },
|
||||
];
|
||||
// Canonical root → preset mapping for reselection when platform is known
|
||||
const rootReselect = [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export interface SiteInitializationPreset {
|
||||
id: string;
|
||||
label: string;
|
||||
platform: 'openai' | 'claude';
|
||||
platform: 'openai' | 'claude' | 'comfy_cloud';
|
||||
defaultUrl: string;
|
||||
initialSegment: 'session' | 'apikey';
|
||||
description?: string;
|
||||
@@ -141,12 +141,22 @@ const presets: SiteInitializationPreset[] = [
|
||||
recommendedSkipModelFetch: true,
|
||||
recommendedModels: [],
|
||||
},
|
||||
{
|
||||
id: 'comfy-cloud',
|
||||
label: 'Comfy Cloud (工作流执行)',
|
||||
platform: 'comfy_cloud',
|
||||
defaultUrl: 'https://cloud.comfy.org',
|
||||
initialSegment: 'apikey',
|
||||
description: 'Comfy Cloud 工作流执行 API;API Key 填 X-API-Key,经 BoosAPI /comfy-cloud 适配端点供 Pixelle 等调用。',
|
||||
recommendedSkipModelFetch: true,
|
||||
recommendedModels: [],
|
||||
},
|
||||
];
|
||||
|
||||
const urlMatchers: Array<{
|
||||
urlPrefix: string;
|
||||
id: string;
|
||||
platform: 'openai' | 'claude';
|
||||
platform: 'openai' | 'claude' | 'comfy_cloud';
|
||||
stripTrailingSlash?: boolean;
|
||||
}> = [
|
||||
{ urlPrefix: 'https://coding.dashscope.aliyuncs.com/v1', id: 'codingplan-openai', platform: 'openai' },
|
||||
@@ -162,6 +172,7 @@ const urlMatchers: Array<{
|
||||
{ urlPrefix: 'https://api-inference.modelscope.cn', id: 'modelscope-claude', platform: 'claude' },
|
||||
{ urlPrefix: 'https://ark.cn-beijing.volces.com/api/coding/v3', id: 'doubao-coding-openai', platform: 'openai' },
|
||||
{ urlPrefix: 'https://ark.cn-beijing.volces.com/api/v3', id: 'volcengine-ark-openai', platform: 'openai', stripTrailingSlash: true },
|
||||
{ urlPrefix: 'https://cloud.comfy.org', id: 'comfy-cloud', platform: 'comfy_cloud', stripTrailingSlash: true },
|
||||
];
|
||||
|
||||
// Canonical root → preset mapping for reselection when platform is known
|
||||
@@ -183,7 +194,7 @@ export function listSiteInitializationPresets(): SiteInitializationPreset[] {
|
||||
export function detectSiteInitializationPreset(
|
||||
url: string,
|
||||
knownPlatform?: string,
|
||||
): { id: string; platform: 'openai' | 'claude' } | null {
|
||||
): { id: string; platform: 'openai' | 'claude' | 'comfy_cloud' } | null {
|
||||
// Try exact URL prefix matching
|
||||
const normalizedUrl = url.replace(/\/+$/, '');
|
||||
for (const matcher of urlMatchers) {
|
||||
|
||||
Reference in New Issue
Block a user