ai-chatbot/types/agent.ts
Your Name c2a0568148
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Add managed tree categories for agents
2026-03-12 17:49:54 +08:00

173 lines
4.4 KiB
TypeScript

export type AgentPresetType = "image" | "video";
export type AgentPresetVisibility = "public" | "private";
export type AgentCategoryScope = "public" | "private" | "global";
export type AgentPresetStatus = "active" | "disabled" | "hidden" | "blocked";
export interface AgentCategoryPath {
productCategory?: string | null;
audienceTag?: string | null;
usageScenario?: string | null;
brand?: string | null;
}
export interface AgentCategoryTreeConfig {
productCategories: string[];
audienceTags: string[];
usageScenarios: string[];
brands: string[];
}
export interface AgentCategory {
id: string;
name: string;
slug: string;
scope: AgentCategoryScope;
createdBy?: string | null;
sortOrder: number;
isEnabled: boolean;
createdAt: string | Date;
updatedAt: string | Date;
}
export interface AgentReferenceAsset {
id: string;
assetId: string;
sortOrder: number;
originalUrl: string;
previewUrl?: string | null;
thumbnailUrl?: string | null;
mimeType?: string | null;
displayName?: string | null;
}
export interface AgentPresetSlot {
id?: string;
slotIndex: number;
title?: string | null;
promptTemplate: string;
defaultParams?: Record<string, any> | null;
requireUpload?: boolean;
uploadLabel?: string | null;
referenceAssets?: AgentReferenceAsset[];
referenceAssetIds?: string[];
}
export interface AgentModelSummary {
id: string;
modelId?: string | null;
displayName?: string | null;
avatarUrl?: string | null;
}
export interface AgentOwnerSummary {
id: string;
name?: string | null;
email?: string | null;
}
export interface AgentPreset {
id: string;
ownerUserId: string;
name: string;
type: AgentPresetType;
visibility: AgentPresetVisibility;
categoryId?: string | null;
categoryPath?: AgentCategoryPath | null;
promptTemplate: string;
description?: string | null;
defaultModelId?: string | null;
defaultParams?: Record<string, any> | null;
slotCount: number;
requiredUploadCount: number;
avatarAssetId?: string | null;
avatarUrl?: string | null;
coverAssetId?: string | null;
status: AgentPresetStatus;
sortOrder: number;
usageCount: number;
lastUsedAt?: string | Date | null;
forkedFromPresetId?: string | null;
createdAt: string | Date;
updatedAt: string | Date;
owner?: AgentOwnerSummary | null;
category?: AgentCategory | null;
defaultModel?: AgentModelSummary | null;
slots?: AgentPresetSlot[];
referenceAssets?: AgentReferenceAsset[];
referenceAssetIds?: string[];
referenceAssetCount?: number;
}
export interface AgentPresetListResponse {
categories: AgentCategory[];
public: AgentPreset[];
private: AgentPreset[];
}
export interface AgentExecutionSnapshot {
id: string;
presetId: string;
projectId?: string | null;
chatId?: string | null;
messageId?: string | null;
userId: string;
presetName: string;
presetType: AgentPresetType;
visibility: AgentPresetVisibility;
categoryId?: string | null;
categoryName?: string | null;
promptTemplate: string;
defaultModelId?: string | null;
resolvedModelId?: string | null;
defaultParams?: Record<string, any> | null;
slotCount: number;
requiredUploadCount: number;
slots: Array<{
slotIndex: number;
title?: string | null;
promptTemplate: string;
defaultParams?: Record<string, any> | null;
requireUpload?: boolean;
uploadLabel?: string | null;
referenceAssetIds: string[];
referenceImageUrls: string[];
}>;
referenceAssetIds: string[];
referenceImageUrls: string[];
userInputText?: string | null;
requestPayload?: Record<string, any> | null;
createdAt: string | Date;
defaultModel?: AgentModelSummary | null;
resolvedModel?: AgentModelSummary | null;
}
export interface AgentCreatePayload {
name: string;
type: AgentPresetType;
visibility: AgentPresetVisibility;
categoryPath?: AgentCategoryPath | null;
description?: string;
defaultModelId: string;
defaultParams?: Record<string, any>;
avatarAssetId?: string;
slots: AgentPresetSlot[];
}
export interface AgentUpdatePayload {
name?: string;
type?: AgentPresetType;
visibility?: AgentPresetVisibility;
categoryPath?: AgentCategoryPath | null;
description?: string | null;
defaultModelId?: string;
defaultParams?: Record<string, any> | null;
avatarAssetId?: string | null;
slots?: AgentPresetSlot[];
status?: AgentPresetStatus;
}
export interface AgentCategoryCreatePayload {
name: string;
scope?: "public" | "private";
}