Усиление 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 выборе.
  • Панель управления использует поле счетчика jobs gateway для статуса.

Текущее поведение

  • Нормализация: обернутые полезные нагрузки 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 как явный провайдер доставки (в настоящее время фильтруется в разрешении доставки)?