feat: 新增定时任务功能
This commit is contained in:
@@ -21,5 +21,6 @@ export const NAMESPACES = [
|
||||
'component',
|
||||
'models',
|
||||
'skills',
|
||||
'cron',
|
||||
] as const;
|
||||
export type Namespace = (typeof NAMESPACES)[number];
|
||||
97
src/i18n/locales/en/cron.json
Normal file
97
src/i18n/locales/en/cron.json
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"title": "Scheduled Tasks",
|
||||
"subtitle": "Automate AI workflows with scheduled tasks",
|
||||
"newTask": "New Task",
|
||||
"refresh": "Refresh",
|
||||
"stats": {
|
||||
"total": "Total Tasks",
|
||||
"active": "Active",
|
||||
"paused": "Paused",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"empty": {
|
||||
"title": "No scheduled tasks",
|
||||
"description": "Create scheduled tasks to automate AI workflows. Tasks can send messages, run queries, or perform actions at specified times.",
|
||||
"create": "Create Your First Task"
|
||||
},
|
||||
"card": {
|
||||
"runNow": "Run Now",
|
||||
"deleteConfirm": "Are you sure you want to delete this task?",
|
||||
"last": "Last",
|
||||
"next": "Next"
|
||||
},
|
||||
"dialog": {
|
||||
"createTitle": "Create Task",
|
||||
"editTitle": "Edit Task",
|
||||
"description": "Schedule an automated AI task",
|
||||
"taskName": "Task Name",
|
||||
"taskNamePlaceholder": "e.g., Morning briefing",
|
||||
"message": "Message / Prompt",
|
||||
"messagePlaceholder": "What should the AI do? e.g., Give me a summary of today's news and weather",
|
||||
"schedule": "Schedule",
|
||||
"cronPlaceholder": "Cron expression (e.g., 0 9 * * *)",
|
||||
"usePresets": "Use presets",
|
||||
"useCustomCron": "Use custom cron",
|
||||
"deliveryTitle": "Delivery",
|
||||
"deliveryDescription": "Choose whether this task stays in the app or is pushed to an external channel.",
|
||||
"deliveryModeNone": "In app only",
|
||||
"deliveryModeNoneDesc": "Run the task and keep the result in the app.",
|
||||
"deliveryModeAnnounce": "External channel",
|
||||
"deliveryModeAnnounceDesc": "Send the final result through a configured channel.",
|
||||
"deliveryChannel": "Channel",
|
||||
"channelUnsupportedTag": "Unsupported",
|
||||
"deliveryAccount": "Sending Account",
|
||||
"selectDeliveryAccount": "Select an account",
|
||||
"deliveryAccountDesc": "Uses the same configured account list shown on the Channels page.",
|
||||
"selectChannel": "Select a channel",
|
||||
"deliveryChannelUnsupported": "{{channel}} does not currently support scheduled outbound delivery.",
|
||||
"deliveryDefaultAccountHint": "Uses the channel's default account: {{account}}",
|
||||
"deliveryTarget": "Recipient / Target",
|
||||
"selectDeliveryTarget": "Select a delivery target",
|
||||
"loadingTargets": "Loading targets...",
|
||||
"currentTarget": "Current target",
|
||||
"noDeliveryTargets": "No delivery targets are available for the selected {{channel}} account.",
|
||||
"deliveryTargetDescAuto": "Select from targets discovered for the chosen channel account.",
|
||||
"enableImmediately": "Enable immediately",
|
||||
"enableImmediatelyDesc": "Start running this task after creation",
|
||||
"saveChanges": "Save Changes"
|
||||
},
|
||||
"presets": {
|
||||
"everyMinute": "Every minute",
|
||||
"every5Min": "Every 5 minutes",
|
||||
"every15Min": "Every 15 minutes",
|
||||
"everyHour": "Every hour",
|
||||
"daily9am": "Daily at 9am",
|
||||
"daily6pm": "Daily at 6pm",
|
||||
"weeklyMon": "Weekly (Mon 9am)",
|
||||
"monthly1st": "Monthly (1st at 9am)"
|
||||
},
|
||||
"toast": {
|
||||
"created": "Task created",
|
||||
"updated": "Task updated",
|
||||
"enabled": "Task enabled",
|
||||
"paused": "Task paused",
|
||||
"deleted": "Task deleted",
|
||||
"triggered": "Task triggered successfully",
|
||||
"failedTrigger": "Failed to trigger task: {{error}}",
|
||||
"failedUpdate": "Failed to update task",
|
||||
"failedDelete": "Failed to delete task",
|
||||
"nameRequired": "Please enter a task name",
|
||||
"messageRequired": "Please enter a message",
|
||||
"channelRequired": "Please select a channel",
|
||||
"deliveryChannelUnsupported": "{{channel}} does not support scheduled delivery yet",
|
||||
"deliveryTargetRequired": "Please enter a delivery target",
|
||||
"scheduleRequired": "Please select or enter a schedule"
|
||||
},
|
||||
"schedule": {
|
||||
"everySeconds": "Every {{count}}s",
|
||||
"everyMinutes": "Every {{count}} minutes",
|
||||
"everyHours": "Every {{count}} hours",
|
||||
"everyDays": "Every {{count}} days",
|
||||
"onceAt": "Once at {{time}}",
|
||||
"weeklyAt": "Weekly on {{day}} at {{time}}",
|
||||
"monthlyAtDay": "Monthly on day {{day}} at {{time}}",
|
||||
"dailyAt": "Daily at {{time}}",
|
||||
"unknown": "Unknown"
|
||||
}
|
||||
}
|
||||
94
src/i18n/locales/ja/cron.json
Normal file
94
src/i18n/locales/ja/cron.json
Normal file
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"title": "定期タスク",
|
||||
"subtitle": "定期タスクでAIワークフローを自動化",
|
||||
"newTask": "新規タスク",
|
||||
"refresh": "更新",
|
||||
"stats": {
|
||||
"total": "タスク合計",
|
||||
"active": "有効",
|
||||
"paused": "停止中",
|
||||
"failed": "失敗"
|
||||
},
|
||||
"empty": {
|
||||
"title": "定期タスクがありません",
|
||||
"description": "定期タスクを作成してAIワークフローを自動化します。指定した時間にメッセージ送信、クエリ実行、アクション実行が可能です。",
|
||||
"create": "最初のタスクを作成"
|
||||
},
|
||||
"card": {
|
||||
"runNow": "今すぐ実行",
|
||||
"deleteConfirm": "このタスクを削除してもよろしいですか?",
|
||||
"last": "前回",
|
||||
"next": "次回"
|
||||
},
|
||||
"dialog": {
|
||||
"createTitle": "タスク作成",
|
||||
"editTitle": "タスク編集",
|
||||
"description": "自動化AIタスクをスケジュール",
|
||||
"taskName": "タスク名",
|
||||
"taskNamePlaceholder": "例:朝のブリーフィング",
|
||||
"message": "メッセージ / プロンプト",
|
||||
"messagePlaceholder": "AIに何をさせますか? 例:今日のニュースと天気のまとめを作成",
|
||||
"schedule": "スケジュール",
|
||||
"cronPlaceholder": "Cron式(例:0 9 * * *)",
|
||||
"usePresets": "プリセットを使用",
|
||||
"useCustomCron": "カスタムCronを使用",
|
||||
"deliveryTitle": "配信設定",
|
||||
"deliveryDescription": "結果をアプリ内だけに残すか、外部チャンネルへ送信するかを選びます。",
|
||||
"deliveryModeNone": "アプリ内のみ",
|
||||
"deliveryModeNoneDesc": "タスクを実行し、結果はアプリ内だけに残します。",
|
||||
"deliveryModeAnnounce": "外部チャンネル",
|
||||
"deliveryModeAnnounceDesc": "最終結果を設定済みチャンネルへ送信します。",
|
||||
"deliveryChannel": "チャンネル",
|
||||
"deliveryAccount": "送信アカウント",
|
||||
"selectDeliveryAccount": "アカウントを選択",
|
||||
"deliveryAccountDesc": "Channels ページと同じ設定済みアカウント一覧を使います。",
|
||||
"selectChannel": "チャンネルを選択",
|
||||
"deliveryDefaultAccountHint": "このチャンネルの既定アカウントを使います: {{account}}",
|
||||
"deliveryTarget": "送信先",
|
||||
"selectDeliveryTarget": "送信先を選択",
|
||||
"loadingTargets": "送信先を読み込み中...",
|
||||
"currentTarget": "現在の送信先",
|
||||
"noDeliveryTargets": "この {{channel}} アカウントでは選択可能な送信先が見つかりませんでした。",
|
||||
"deliveryTargetDescAuto": "選択したチャンネルアカウントで見つかった送信先から選べます。",
|
||||
"enableImmediately": "すぐに有効化",
|
||||
"enableImmediatelyDesc": "作成後すぐにこのタスクを実行開始",
|
||||
"saveChanges": "変更を保存"
|
||||
},
|
||||
"presets": {
|
||||
"everyMinute": "毎分",
|
||||
"every5Min": "5分ごと",
|
||||
"every15Min": "15分ごと",
|
||||
"everyHour": "1時間ごと",
|
||||
"daily9am": "毎日 午前9時",
|
||||
"daily6pm": "毎日 午後6時",
|
||||
"weeklyMon": "毎週 (月曜 午前9時)",
|
||||
"monthly1st": "毎月 (1日 午前9時)"
|
||||
},
|
||||
"toast": {
|
||||
"created": "タスクを作成しました",
|
||||
"updated": "タスクを更新しました",
|
||||
"enabled": "タスクを有効にしました",
|
||||
"paused": "タスクを停止しました",
|
||||
"deleted": "タスクを削除しました",
|
||||
"triggered": "タスクを正常にトリガーしました",
|
||||
"failedTrigger": "タスクの実行に失敗しました: {{error}}",
|
||||
"failedUpdate": "タスクの更新に失敗しました",
|
||||
"failedDelete": "タスクの削除に失敗しました",
|
||||
"nameRequired": "タスク名を入力してください",
|
||||
"messageRequired": "メッセージを入力してください",
|
||||
"channelRequired": "チャンネルを選択してください",
|
||||
"deliveryTargetRequired": "送信先を入力してください",
|
||||
"scheduleRequired": "スケジュールを選択または入力してください"
|
||||
},
|
||||
"schedule": {
|
||||
"everySeconds": "{{count}}秒ごと",
|
||||
"everyMinutes": "{{count}}分ごと",
|
||||
"everyHours": "{{count}}時間ごと",
|
||||
"everyDays": "{{count}}日ごと",
|
||||
"onceAt": "{{time}} に1回実行",
|
||||
"weeklyAt": "毎週 {{day}} {{time}}",
|
||||
"monthlyAtDay": "毎月 {{day}}日 {{time}}",
|
||||
"dailyAt": "毎日 {{time}}",
|
||||
"unknown": "不明"
|
||||
}
|
||||
}
|
||||
97
src/i18n/locales/zh/cron.json
Normal file
97
src/i18n/locales/zh/cron.json
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"title": "定时任务",
|
||||
"subtitle": "通过定时任务自动化 AI 工作流",
|
||||
"newTask": "新建任务",
|
||||
"refresh": "刷新",
|
||||
"stats": {
|
||||
"total": "任务总数",
|
||||
"active": "运行中",
|
||||
"paused": "已暂停",
|
||||
"failed": "失败"
|
||||
},
|
||||
"empty": {
|
||||
"title": "暂无定时任务",
|
||||
"description": "创建定时任务以自动化 AI 工作流。任务可以在指定时间发送消息、运行查询或执行操作。",
|
||||
"create": "创建第一个任务"
|
||||
},
|
||||
"card": {
|
||||
"runNow": "立即运行",
|
||||
"deleteConfirm": "确定要删除此任务吗?",
|
||||
"last": "上次运行",
|
||||
"next": "下次运行"
|
||||
},
|
||||
"dialog": {
|
||||
"createTitle": "创建任务",
|
||||
"editTitle": "编辑任务",
|
||||
"description": "安排自动化的 AI 任务",
|
||||
"taskName": "任务名称",
|
||||
"taskNamePlaceholder": "例如:早间简报",
|
||||
"message": "消息 / 提示词",
|
||||
"messagePlaceholder": "AI 应该做什么?例如:给我一份今天的新闻和天气摘要",
|
||||
"schedule": "调度计划",
|
||||
"cronPlaceholder": "Cron 表达式 (例如:0 9 * * *)",
|
||||
"usePresets": "使用预设",
|
||||
"useCustomCron": "使用自定义 Cron",
|
||||
"deliveryTitle": "投递设置",
|
||||
"deliveryDescription": "选择仅在应用内保留结果,或把最终结果推送到外部通道。",
|
||||
"deliveryModeNone": "仅应用内",
|
||||
"deliveryModeNoneDesc": "任务照常运行,结果只保留在应用内。",
|
||||
"deliveryModeAnnounce": "发送到外部通道",
|
||||
"deliveryModeAnnounceDesc": "将最终结果投递到已配置的消息通道。",
|
||||
"deliveryChannel": "通道",
|
||||
"channelUnsupportedTag": "暂不支持",
|
||||
"deliveryAccount": "发送账号",
|
||||
"selectDeliveryAccount": "选择账号",
|
||||
"deliveryAccountDesc": "这里直接复用 Channels 页面里的已配置账号列表。",
|
||||
"selectChannel": "选择通道",
|
||||
"deliveryChannelUnsupported": "{{channel}} 通道当前不支持定时任务主动投递。",
|
||||
"deliveryDefaultAccountHint": "将使用该通道当前的默认账号:{{account}}",
|
||||
"deliveryTarget": "接收目标",
|
||||
"selectDeliveryTarget": "选择接收目标",
|
||||
"loadingTargets": "正在加载目标...",
|
||||
"currentTarget": "当前目标",
|
||||
"noDeliveryTargets": "当前 {{channel}} 账号暂无可选投递目标。",
|
||||
"deliveryTargetDescAuto": "这里会展示该通道账号下已发现的可投递目标。",
|
||||
"enableImmediately": "立即启用",
|
||||
"enableImmediatelyDesc": "创建后立即开始运行此任务",
|
||||
"saveChanges": "保存更改"
|
||||
},
|
||||
"presets": {
|
||||
"everyMinute": "每分钟",
|
||||
"every5Min": "每 5 分钟",
|
||||
"every15Min": "每 15 分钟",
|
||||
"everyHour": "每小时",
|
||||
"daily9am": "每天上午 9 点",
|
||||
"daily6pm": "每天下午 6 点",
|
||||
"weeklyMon": "每周 (周一上午 9 点)",
|
||||
"monthly1st": "每月 (1号上午 9 点)"
|
||||
},
|
||||
"toast": {
|
||||
"created": "任务已创建",
|
||||
"updated": "任务已更新",
|
||||
"enabled": "任务已启用",
|
||||
"paused": "任务已暂停",
|
||||
"deleted": "任务已删除",
|
||||
"triggered": "任务已成功触发",
|
||||
"failedTrigger": "触发任务失败: {{error}}",
|
||||
"failedUpdate": "更新任务失败",
|
||||
"failedDelete": "删除任务失败",
|
||||
"nameRequired": "请输入任务名称",
|
||||
"messageRequired": "请输入消息",
|
||||
"channelRequired": "请选择通道",
|
||||
"deliveryChannelUnsupported": "{{channel}} 暂不支持定时任务投递",
|
||||
"deliveryTargetRequired": "请输入投递目标",
|
||||
"scheduleRequired": "请选择或输入调度计划"
|
||||
},
|
||||
"schedule": {
|
||||
"everySeconds": "每 {{count}} 秒",
|
||||
"everyMinutes": "每 {{count}} 分钟",
|
||||
"everyHours": "每 {{count}} 小时",
|
||||
"everyDays": "每 {{count}} 天",
|
||||
"onceAt": "执行一次,时间:{{time}}",
|
||||
"weeklyAt": "每周 {{day}} {{time}}",
|
||||
"monthlyAtDay": "每月 {{day}} 日 {{time}}",
|
||||
"dailyAt": "每天 {{time}}",
|
||||
"unknown": "未知"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user