85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
export interface PackageSecretField {
|
|
key: string;
|
|
labelKey: string;
|
|
placeholderKey: string;
|
|
}
|
|
|
|
export interface PackageDef {
|
|
id: string;
|
|
name: string;
|
|
descriptionKey: string;
|
|
requiresSecrets: boolean;
|
|
secrets?: PackageSecretField[];
|
|
instructionsKey?: string;
|
|
disclaimerKey?: string;
|
|
category: "channel" | "skill";
|
|
}
|
|
|
|
export const PACKAGE_CATALOG: PackageDef[] = [
|
|
{
|
|
id: "telegram",
|
|
name: "Telegram",
|
|
descriptionKey: "packages.telegram.description",
|
|
requiresSecrets: true,
|
|
secrets: [
|
|
{
|
|
key: "bot-token",
|
|
labelKey: "packages.telegram.botTokenLabel",
|
|
placeholderKey: "packages.telegram.botTokenPlaceholder",
|
|
},
|
|
],
|
|
instructionsKey: "packages.telegram.instructions",
|
|
disclaimerKey: "packages.telegram.disclaimer",
|
|
category: "channel",
|
|
},
|
|
{
|
|
id: "discord",
|
|
name: "Discord",
|
|
descriptionKey: "packages.discord.description",
|
|
requiresSecrets: true,
|
|
secrets: [
|
|
{
|
|
key: "bot-token",
|
|
labelKey: "packages.discord.botTokenLabel",
|
|
placeholderKey: "packages.discord.botTokenPlaceholder",
|
|
},
|
|
],
|
|
instructionsKey: "packages.discord.instructions",
|
|
disclaimerKey: "packages.discord.disclaimer",
|
|
category: "channel",
|
|
},
|
|
{
|
|
id: "email",
|
|
name: "Email",
|
|
descriptionKey: "packages.email.description",
|
|
requiresSecrets: true,
|
|
secrets: [
|
|
{ key: "smtp-host", labelKey: "packages.email.smtpHostLabel", placeholderKey: "packages.email.smtpHostPlaceholder" },
|
|
{ key: "smtp-user", labelKey: "packages.email.smtpUserLabel", placeholderKey: "packages.email.smtpUserPlaceholder" },
|
|
{ key: "smtp-password", labelKey: "packages.email.smtpPasswordLabel", placeholderKey: "packages.email.smtpPasswordPlaceholder" },
|
|
{ key: "imap-host", labelKey: "packages.email.imapHostLabel", placeholderKey: "packages.email.imapHostPlaceholder" },
|
|
],
|
|
instructionsKey: "packages.email.instructions",
|
|
disclaimerKey: "packages.email.disclaimer",
|
|
category: "channel",
|
|
},
|
|
{
|
|
id: "web-search",
|
|
name: "Web Search",
|
|
descriptionKey: "packages.webSearch.description",
|
|
requiresSecrets: false,
|
|
category: "skill",
|
|
},
|
|
{
|
|
id: "document-processing",
|
|
name: "Document Processing",
|
|
descriptionKey: "packages.documentProcessing.description",
|
|
requiresSecrets: false,
|
|
category: "skill",
|
|
},
|
|
];
|
|
|
|
export function getPackageDef(id: string): PackageDef | undefined {
|
|
return PACKAGE_CATALOG.find((p) => p.id === id);
|
|
}
|