Initial project scaffold
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
export type Permission = 'public' | 'basic' | 'creat' | 'power' | 'manager';
|
||||
|
||||
export interface AuthUser {
|
||||
sub: string;
|
||||
username: string;
|
||||
role?: string[];
|
||||
tenantId?: string | null;
|
||||
sso_id?: string;
|
||||
apiKeyId?: string;
|
||||
apiKeySecret?: string;
|
||||
apiKeyName?: string;
|
||||
}
|
||||
|
||||
export interface IntegrationPlatform {
|
||||
id: string;
|
||||
provider: string;
|
||||
platformKey: string;
|
||||
name: string;
|
||||
baseUrl?: string;
|
||||
authType: string;
|
||||
status: 'enabled' | 'disabled' | string;
|
||||
priority: number;
|
||||
defaultPricingMode: PricingMode;
|
||||
defaultDiscountFactor: number;
|
||||
config?: Record<string, unknown>;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export type PricingMode = 'inherit' | 'inherit_discount' | 'custom';
|
||||
|
||||
export type RateLimitMetric =
|
||||
| 'tpm_total'
|
||||
| 'tpm_input'
|
||||
| 'tpm_output'
|
||||
| 'rpm'
|
||||
| 'concurrent'
|
||||
| 'queue_size';
|
||||
|
||||
export interface CatalogProvider {
|
||||
id: string;
|
||||
providerKey: string;
|
||||
displayName: string;
|
||||
providerType: string;
|
||||
capabilitySchema?: Record<string, unknown>;
|
||||
defaultRateLimitPolicy?: RateLimitPolicy;
|
||||
status: 'active' | 'deprecated' | 'hidden' | string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface BaseModelCatalogItem {
|
||||
id: string;
|
||||
providerKey: string;
|
||||
canonicalModelKey: string;
|
||||
providerModelName: string;
|
||||
modelType: 'chat' | 'image' | 'video' | 'audio' | 'embedding' | 'music' | 'digital_human' | 'model_3d' | string;
|
||||
displayName: string;
|
||||
capabilities?: Record<string, unknown>;
|
||||
baseBillingConfig?: BillingConfig;
|
||||
defaultRateLimitPolicy?: RateLimitPolicy;
|
||||
pricingVersion: number;
|
||||
status: 'active' | 'deprecated' | 'hidden' | string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface PricingRule {
|
||||
id: string;
|
||||
scopeType: 'base_model' | 'platform' | 'platform_model' | string;
|
||||
scopeId?: string;
|
||||
resourceType:
|
||||
| 'text_input'
|
||||
| 'text_output'
|
||||
| 'text_total'
|
||||
| 'image'
|
||||
| 'video'
|
||||
| 'audio'
|
||||
| 'music'
|
||||
| 'digital_human'
|
||||
| 'model'
|
||||
| string;
|
||||
unit: '1k_tokens' | 'image' | '5s' | 'second' | 'character_1k' | 'item' | string;
|
||||
basePrice: number;
|
||||
currency: 'resource' | 'credit' | 'cny' | 'usd' | string;
|
||||
baseWeight?: Record<string, unknown>;
|
||||
dynamicWeight?: Record<string, unknown>;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface RateLimitRule {
|
||||
metric: RateLimitMetric;
|
||||
limit: number;
|
||||
windowSeconds?: number;
|
||||
leaseTtlSeconds?: number;
|
||||
consume?: 'fixed_window' | 'reserve_then_reconcile' | string;
|
||||
}
|
||||
|
||||
export interface RateLimitPolicy {
|
||||
rules?: RateLimitRule[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface BillingConfig {
|
||||
resourceType?: string;
|
||||
basePrice?: number;
|
||||
baseWeight?: Record<string, unknown>;
|
||||
dynamicWeight?: Record<string, unknown>;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface PlatformModel {
|
||||
id: string;
|
||||
platformId: string;
|
||||
baseModelId?: string;
|
||||
provider?: string;
|
||||
platformName?: string;
|
||||
modelName: string;
|
||||
modelAlias?: string;
|
||||
modelType: 'chat' | 'image' | 'video' | 'audio' | 'embedding' | string;
|
||||
displayName: string;
|
||||
capabilityOverride?: Record<string, unknown>;
|
||||
capabilities?: Record<string, unknown>;
|
||||
pricingMode: PricingMode;
|
||||
discountFactor?: number;
|
||||
billingConfigOverride?: BillingConfig;
|
||||
billingConfig?: BillingConfig;
|
||||
enabled: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface RateLimitWindow {
|
||||
scopeType: string;
|
||||
scopeKey: string;
|
||||
metric: RateLimitMetric | string;
|
||||
windowStart: string;
|
||||
limitValue: number;
|
||||
usedValue: number;
|
||||
reservedValue: number;
|
||||
resetAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface GatewayTask {
|
||||
id: string;
|
||||
kind: string;
|
||||
userId: string;
|
||||
tenantId?: string;
|
||||
model: string;
|
||||
request?: Record<string, unknown>;
|
||||
status: 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled' | string;
|
||||
result?: Record<string, unknown>;
|
||||
billings?: unknown[];
|
||||
error?: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface ListResponse<T> {
|
||||
items: T[];
|
||||
}
|
||||
Reference in New Issue
Block a user