Усиление Cron Add и выравнивание схем
Контекст
Недавние логи gateway показывают повторяющиеся сбои cron.add с недопустимыми параметрами (отсутствующие sessionTarget, wakeMode, payload и неверно сформированный schedule). Это указывает на то, что по крайней мере один клиент (вероятно, путь вызова инструмента агента) отправляет обернутые или частично указанные полезные нагрузки заданий. Отдельно есть расхождение между перечислениями провайдеров cron в TypeScript, схеме gateway, флагах CLI и типах форм UI, плюс несоответствие UI для cron.status (ожидает jobCount, в то время как gateway возвращает jobs).
Цели
- Остановить спам INVALID_REQUEST
cron.add, нормализуя общие обернутые полезные нагрузки и выводя отсутствующие поляkind. - Выровнять списки провайдеров cron в схеме gateway, типах cron, документации CLI и формах UI.
- Сделать схему инструмента cron агента явной, чтобы LLM производил правильные полезные нагрузки заданий.
- Исправить отображение количества заданий статуса cron в панели управления.
- Добавить тесты для покрытия нормализации и поведения инструмента.
Не-цели
- Изменение семантики планирования cron или поведения выполнения заданий.
- Добавление новых типов расписаний или разбор выражений cron.
- Пересмотр UI/UX для cron за пределами необходимых исправлений полей.
Находки (текущие пробелы)
CronPayloadSchemaв gateway исключаетsignal+imessage, в то время как типы TS включают их.- Панель управления CronStatus ожидает
jobCount, но gateway возвращаетjobs. - Схема инструмента cron агента допускает произвольные объекты
job, позволяя неверно сформированные входные данные. - Gateway строго валидирует
cron.addбез нормализации, поэтому обернутые полезные нагрузки падают.
Что изменилось
cron.addиcron.updateтеперь нормализуют общие формы оберток и выводят отсутствующие поляkind.- Схема инструмента cron агента соответствует схеме gateway, что уменьшает недопустимые полезные нагрузки.
- Перечисления провайдеров выровнены в gateway, CLI, UI и macOS выборе.
- Панель управления использует поле счетчика
jobsgateway для статуса.
Текущее поведение
- Нормализация: обернутые полезные нагрузки
data/jobразворачиваются;schedule.kindиpayload.kindвыводятся, когда безопасно. - По умолчанию: безопасные значения по умолчанию применяются для
wakeModeиsessionTarget, когда отсутствуют. - Провайдеры: Discord/Slack/Signal/iMessage теперь последовательно представлены в CLI/UI.
См. Задания Cron для нормализованной формы и примеров.
Проверка
- Наблюдайте за логами gateway для уменьшения ошибок INVALID_REQUEST
cron.add. - Подтвердите, что статус cron в панели управления показывает количество заданий после обновления.
Опциональные продолжения
- Ручная проверка панели управления: добавить задание cron для каждого провайдера + проверить счетчик заданий статуса.
Открытые вопросы
- Должен ли
cron.addпринимать явноеstateот клиентов (в настоящее время запрещено схемой)? - Должны ли мы разрешить
webchatкак явный провайдер доставки (в настоящее время фильтруется в разрешении доставки)?