feat: add recurrence_rule to LLM tools; list_tasks status accepts list + cancelled

This commit is contained in:
2026-03-27 23:02:30 -04:00
parent 6557fef6a2
commit 3d7c953627
+32 -5
View File
@@ -105,6 +105,19 @@ _CORE_TOOLS = [
"type": "boolean",
"description": "Set to true only when the user has explicitly confirmed creation after being warned about a similar existing task.",
},
"recurrence_rule": {
"type": "object",
"description": (
"Optional recurrence schedule so the task repeats automatically. Two forms:\n"
" Interval — repeat every N units from the due date:\n"
' {"type": "interval", "every": 3, "unit": "month"}\n'
" unit options: day | week | month | year\n"
" Calendar/monthly — specific day each month:\n"
' {"type": "calendar", "unit": "month", "day_of_month": 1}\n'
" Calendar/annual — specific day each year:\n"
' {"type": "calendar", "unit": "year", "day_of_month": 15, "month": 6}'
),
},
},
"required": ["title"],
},
@@ -179,8 +192,8 @@ _CORE_TOOLS = [
},
"status": {
"type": "string",
"enum": ["todo", "in_progress", "done"],
"description": "New task status. Use to mark a task done, start it, etc.",
"enum": ["todo", "in_progress", "done", "cancelled"],
"description": "New task status. Use to mark a task done, start it, cancel it, etc.",
},
"priority": {
"type": "string",
@@ -205,6 +218,13 @@ _CORE_TOOLS = [
"type": "string",
"description": "Optional project name to assign this note/task to (set to empty string to remove project)",
},
"recurrence_rule": {
"type": "object",
"description": (
"Set or update the recurrence schedule. Pass null to remove recurrence. "
"Same format as create_task recurrence_rule."
),
},
},
"required": ["query"],
},
@@ -353,9 +373,16 @@ _CORE_TOOLS = [
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["todo", "in_progress", "done"],
"description": "Filter by task status",
"type": "array",
"items": {
"type": "string",
"enum": ["todo", "in_progress", "done", "cancelled"],
},
"description": (
"Filter by one or more task statuses. "
'Example: ["todo", "in_progress"] to list all active tasks. '
"Omit to return tasks of any status."
),
},
"priority": {
"type": "string",