// 定时任务的协议参考(docs/design/14-schedules.md §8),Agent API 与 Bot API 共用类型 import type { ApiTypeDef } from '@agent-server/shared' export const SCHEDULE_DESC = '定时任务由 AI 在对话中创建(用户在确认卡片中确认后生效),到点时服务端把指令作为一条新消息发到同一个会话或工作组。平台可以查看、暂停、恢复和删除。' export const SCHEDULE_TYPES: ApiTypeDef[] = [ { name: 'Schedule', fields: [ { name: 'id', type: 'string', desc: 'sch_ 开头' }, { name: 'target', type: '{ kind: "session", sessionId } | { kind: "team", teamId }', desc: '所属的会话或工作组' }, { name: 'title / prompt', type: 'string', desc: '名称;到点时发出的指令' }, { name: 'spec', type: 'ScheduleSpec', desc: '时间表:once(at)、daily / weekdays(time)、weekly(days、time)、monthly(day、time)、interval(hours)' }, { name: 'description', type: 'string', desc: '时间表的中文描述,如"每个工作日(周一到周五)09:00"' }, { name: 'timezone', type: 'string', desc: '如 Asia/Shanghai' }, { name: 'status', type: '"active" | "paused" | "ended"', desc: 'ended:只执行一次的已执行' }, { name: 'statusNote', type: 'string | null', desc: '自动暂停的原因(例如成本超出上限)' }, { name: 'nextRunAt / lastRunAt', type: 'string | null', desc: '' }, { name: 'lastOutcome', type: '"running" | "completed" | "failed" | "skipped" | "sent" | null', desc: 'sent:已发到工作组' }, { name: 'runCount', type: 'number', desc: '' }, { name: 'createdByBotId', type: 'string | null', desc: '工作组中创建它的机器人' }, ], }, { name: 'ScheduleRun', fields: [ { name: 'id', type: 'number', desc: '' }, { name: 'ts', type: 'string', desc: '执行时间' }, { name: 'outcome', type: '"running" | "completed" | "failed" | "skipped" | "sent"', desc: '' }, { name: 'runId', type: 'string | null', desc: '会话中执行时的 Run' }, { name: 'costUsd', type: 'number | null', desc: '' }, { name: 'note', type: 'string | null', desc: '跳过或失败的原因' }, ], }, ]