Files
FastGPT/packages/global/core/app/constants.ts
T
Archer d571c768ea V4.14.1 feature (#5880)
* feat: app split (#5858)

* feat: app split script

* fix: app split

* chore: app split script try-catch

* adjust dashborad page (#5872)

* create page

* create page

* create button

* router name

* bot

* template

* create page

* mobile

* toolfolder

* fix

* fix

* fix build

* split tool select

* img

* doc

* rename enum

* fix page adjust (#5883)

* fix page adjust

* fix ad store

* fix: initv4141 (#5886)

* fix: create app

* doc

* hide api

* doc

* feat: payment pause interactive (#5892)

* fix: copy clbs (#5889)

* fix: copy clbs

* fix: copy clbs

* fix: http protocol handling in baseURL (#5890)

* fix: http protocol handling in baseURL

* ui fix

* auto saved version

* fix

* auto save

* fix: model permission modal (#5895)

* folder

* fix: del app

* navbar

* fix: plugin file selector (#5893)

* fix: plugin file selector

* fix: plugin file selector

* workflow tool inputform

* pick

---------

Co-authored-by: archer <545436317@qq.com>

* fix: workflow tool time

* doc

* fix workorder button (#5896)

* add inform track (#5897)

* remove invalid track

* comment

* feat: marketplace refresh api (#5884)

* marketplace refresh

* fix: helper bot menu button (#5898)

---------

Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>
Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: 伍闲犬 <whoeverimf5@gmail.com>
2025-11-11 14:05:02 +08:00

126 lines
3.1 KiB
TypeScript

import {
type AppTTSConfigType,
type AppFileSelectConfigType,
type AppWhisperConfigType,
type AppAutoExecuteConfigType,
type AppQGConfigType
} from './type';
export enum AppTypeEnum {
folder = 'folder',
toolFolder = 'toolFolder',
simple = 'simple',
agent = 'agent',
workflow = 'advanced',
workflowTool = 'plugin',
mcpToolSet = 'toolSet', // 'mcp'
httpToolSet = 'httpToolSet',
hidden = 'hidden',
// deprecated
tool = 'tool',
httpPlugin = 'httpPlugin'
}
export const AppFolderTypeList = [
AppTypeEnum.folder,
AppTypeEnum.toolFolder,
AppTypeEnum.httpPlugin
];
export const ToolTypeList = [
AppTypeEnum.mcpToolSet,
AppTypeEnum.httpToolSet,
AppTypeEnum.workflowTool
];
export const AppTypeList = [AppTypeEnum.simple, AppTypeEnum.agent, AppTypeEnum.workflow];
export const defaultTTSConfig: AppTTSConfigType = { type: 'web' };
export const defaultAutoExecuteConfig: AppAutoExecuteConfigType = {
open: false,
defaultPrompt: ''
};
export const defaultWhisperConfig: AppWhisperConfigType = {
open: false,
autoSend: false,
autoTTSResponse: false
};
export const defaultQGConfig: AppQGConfigType = {
open: false,
model: 'gpt-5',
customPrompt: ''
};
export const defaultChatInputGuideConfig = {
open: false,
textList: [],
customUrl: ''
};
export const defaultAppSelectFileConfig: AppFileSelectConfigType = {
canSelectFile: false,
canSelectImg: false,
maxFiles: 10,
canSelectVideo: false,
canSelectAudio: false,
canSelectCustomFileExtension: false,
customFileExtensionList: []
};
export enum AppTemplateTypeEnum {
recommendation = 'recommendation',
writing = 'writing',
imageGeneration = 'image-generation',
webSearch = 'web-search',
roleplay = 'roleplay',
officeServices = 'office-services',
// special type
contribute = 'contribute'
}
export const defaultFileExtensionTypes = {
canSelectFile: ['.pdf', '.docx', '.pptx', '.xlsx', '.txt', '.md', '.html', '.csv'],
canSelectImg: ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg'],
canSelectVideo: ['.mp4', '.mov', '.avi', '.mpeg', '.webm'],
canSelectAudio: ['.mp3', '.wav', '.ogg', '.m4a', '.amr', '.mpga'],
canSelectCustomFileExtension: []
};
export type FileExtensionKeyType = keyof typeof defaultFileExtensionTypes;
export const getUploadFileType = ({
canSelectFile,
canSelectImg,
canSelectVideo,
canSelectAudio,
canSelectCustomFileExtension,
customFileExtensionList
}: {
canSelectFile?: boolean;
canSelectImg?: boolean;
canSelectVideo?: boolean;
canSelectAudio?: boolean;
canSelectCustomFileExtension?: boolean;
customFileExtensionList?: string[];
}) => {
const types: string[] = [];
if (canSelectFile) {
types.push(...defaultFileExtensionTypes.canSelectFile);
}
if (canSelectImg) {
types.push(...defaultFileExtensionTypes.canSelectImg);
}
if (canSelectVideo) {
types.push(...defaultFileExtensionTypes.canSelectVideo);
}
if (canSelectAudio) {
types.push(...defaultFileExtensionTypes.canSelectAudio);
}
if (canSelectCustomFileExtension && customFileExtensionList) {
types.push(...customFileExtensionList);
}
return types.join(', ');
};