ofiere-openclaw-plugin 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/tools.ts +12 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ofiere-openclaw-plugin",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "type": "module",
5
5
  "description": "OpenClaw plugin for Ofiere PM — 9 meta-tools covering tasks, agents, projects, scheduling, knowledge, workflows, notifications, memory, and prompts",
6
6
  "keywords": ["openclaw", "ofiere", "project-management", "agents", "plugin"],
package/src/tools.ts CHANGED
@@ -191,12 +191,13 @@ function registerTaskOps(
191
191
  `Manage tasks in the Ofiere PM dashboard. All task operations go through this tool.\n\n` +
192
192
  `Actions:\n` +
193
193
  `- "list": List/filter tasks. Optional: status, agent_id, space_id, folder_id, limit\n` +
194
- `- "create": Create a task. Required: title. Optional: agent_id, description, status, priority, space_id, folder_id, start_date, due_date, tags, instructions, execution_plan, goals, constraints, system_prompt\n` +
194
+ `- "create": Create a task. Required: title. Optional: agent_id, description, status, priority, space_id, folder_id, start_date, due_date, tags, instructions, execution_plan, goals, constraints, system_prompt, recurrence_type, recurrence_interval, scheduled_time\n` +
195
195
  `- "update": Update a task. Required: task_id. Optional: all create fields + progress\n` +
196
196
  `- "delete": Delete task + subtasks. Required: task_id\n\n` +
197
197
  `For complex tasks, fill in execution_plan (step-by-step plan), goals, constraints, and system_prompt to help the executing agent.\n` +
198
198
  `For simple tasks, just provide title and optionally description.\n` +
199
199
  `agent_id: Pass your name to self-assign, another agent's name, or 'none'.\n` +
200
+ `For recurring tasks: set start_date + recurrence_type + recurrence_interval. Example: every 2 minutes = recurrence_type: "minutely", recurrence_interval: 2.\n` +
200
201
  `Status: PENDING, IN_PROGRESS, DONE, FAILED | Priority: 0=LOW, 1=MEDIUM, 2=HIGH, 3=CRITICAL`,
201
202
  parameters: {
202
203
  type: "object",
@@ -224,8 +225,15 @@ function registerTaskOps(
224
225
  progress: { type: "number", description: "Progress percentage 0-100 (update only)" },
225
226
  space_id: { type: "string", description: "PM Space ID" },
226
227
  folder_id: { type: "string", description: "PM Folder ID" },
227
- start_date: { type: "string", description: "Start date (ISO 8601)" },
228
+ start_date: { type: "string", description: "Start date (ISO 8601). Required for scheduled/recurring tasks." },
228
229
  due_date: { type: "string", description: "Due date (ISO 8601)" },
230
+ scheduled_time: { type: "string", description: "Time to execute in HH:MM format (UTC). If omitted, extracted from start_date or defaults to now+60s." },
231
+ recurrence_type: {
232
+ type: "string",
233
+ description: "How often the task recurs. 'none' for one-shot.",
234
+ enum: ["none", "minutely", "hourly", "daily", "weekly", "monthly"],
235
+ },
236
+ recurrence_interval: { type: "number", description: "Recurrence interval. e.g. recurrence_type='minutely', recurrence_interval=2 → every 2 minutes. Default: 1" },
229
237
  tags: {
230
238
  type: "array",
231
239
  items: { type: "string" },
@@ -489,8 +497,8 @@ async function handleCreateTask(
489
497
  scheduled_date: scheduledDateFinal,
490
498
  scheduled_time: scheduledTimeFinal,
491
499
  duration_minutes: 30,
492
- recurrence_type: "none",
493
- recurrence_interval: 1,
500
+ recurrence_type: (params.recurrence_type as string) || "none",
501
+ recurrence_interval: (params.recurrence_interval as number) || 1,
494
502
  status: "scheduled",
495
503
  next_run_at: nextRunAtEpoch,
496
504
  run_count: 0,