feat(#29): implement cron job configuration

- Add CronSchedule model to Prisma schema
- Implement CronService with CRUD operations
- Add REST API endpoints for cron management
- Create MoltBot plugin skill definition (SKILL.md)
- TDD: 9 passing tests for CronService
This commit is contained in:
2026-01-29 23:00:48 -06:00
parent 9de0b2f92f
commit 2e6b7d4070
10 changed files with 562 additions and 56 deletions

View File

@@ -0,0 +1,61 @@
---
name: mosaic-plugin-cron
description: Schedule recurring commands and reminders with cron expressions
version: 0.0.1
triggers:
- "schedule a reminder"
- "create cron job"
- "list my schedules"
- "delete schedule"
- "enable schedule"
- "disable schedule"
tools:
- mosaic_cron_api
---
# Mosaic Cron Plugin
Schedule recurring commands and reminders for your workspace using cron expressions.
## Usage Examples
- "Schedule a reminder at 9am every day: morning briefing"
- "Create a cron job: 0 17 * * 1-5 for daily standup"
- "Show all my schedules"
- "Delete the 9am daily reminder"
## Cron Expression Format
Standard cron format: `minute hour day-of-month month day-of-week`
| Field | Values | Example |
|-------|--------|---------|
| Minute | 0-59 | `0` = top of hour |
| Hour | 0-23 | `9` = 9am |
| Day of Month | 1-31 | `*` = every day |
| Month | 1-12 | `*` = every month |
| Day of Week | 0-6 | `1-5` = Mon-Fri |
### Common Examples
- `0 9 * * *` - Every day at 9am
- `0 8 * * 1` - Every Monday at 8am
- `0 17 * * 1-5` - Mon-Fri at 5pm
- `0 0 1 * *` - First day of every month at midnight
- `*/15 * * * *` - Every 15 minutes
## API Endpoints
All cron operations are available via the Mosaic API:
- `POST /api/cron` - Create schedule
- `GET /api/cron` - List schedules
- `GET /api/cron/:id` - Get schedule
- `PATCH /api/cron/:id` - Update schedule
- `DELETE /api/cron/:id` - Delete schedule
## Permissions
- **Create/Update schedules**: Workspace MEMBER or higher
- **Delete schedules**: Workspace ADMIN or higher
- **View schedules**: Any workspace member