@hasna/todos 0.9.34 → 0.9.37

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.
@@ -1,6 +1,21 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
+ var __create = Object.create;
4
+ var __getProtoOf = Object.getPrototypeOf;
3
5
  var __defProp = Object.defineProperty;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __toESM = (mod, isNodeMode, target) => {
9
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
10
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
11
+ for (let key of __getOwnPropNames(mod))
12
+ if (!__hasOwnProp.call(to, key))
13
+ __defProp(to, key, {
14
+ get: () => mod[key],
15
+ enumerable: true
16
+ });
17
+ return to;
18
+ };
4
19
  var __export = (target, all) => {
5
20
  for (var name in all)
6
21
  __defProp(target, name, {
@@ -20,6 +35,8 @@ var init_types = __esm(() => {
20
35
  taskId;
21
36
  expectedVersion;
22
37
  actualVersion;
38
+ static code = "VERSION_CONFLICT";
39
+ static suggestion = "Fetch the task with get_task to get the current version before updating.";
23
40
  constructor(taskId, expectedVersion, actualVersion) {
24
41
  super(`Version conflict for task ${taskId}: expected ${expectedVersion}, got ${actualVersion}`);
25
42
  this.taskId = taskId;
@@ -30,6 +47,8 @@ var init_types = __esm(() => {
30
47
  };
31
48
  TaskNotFoundError = class TaskNotFoundError extends Error {
32
49
  taskId;
50
+ static code = "TASK_NOT_FOUND";
51
+ static suggestion = "Verify the task ID. Use list_tasks or search_tasks to find the correct ID.";
33
52
  constructor(taskId) {
34
53
  super(`Task not found: ${taskId}`);
35
54
  this.taskId = taskId;
@@ -38,6 +57,8 @@ var init_types = __esm(() => {
38
57
  };
39
58
  ProjectNotFoundError = class ProjectNotFoundError extends Error {
40
59
  projectId;
60
+ static code = "PROJECT_NOT_FOUND";
61
+ static suggestion = "Use list_projects to see available projects.";
41
62
  constructor(projectId) {
42
63
  super(`Project not found: ${projectId}`);
43
64
  this.projectId = projectId;
@@ -46,6 +67,8 @@ var init_types = __esm(() => {
46
67
  };
47
68
  PlanNotFoundError = class PlanNotFoundError extends Error {
48
69
  planId;
70
+ static code = "PLAN_NOT_FOUND";
71
+ static suggestion = "Use list_plans to see available plans.";
49
72
  constructor(planId) {
50
73
  super(`Plan not found: ${planId}`);
51
74
  this.planId = planId;
@@ -55,6 +78,8 @@ var init_types = __esm(() => {
55
78
  LockError = class LockError extends Error {
56
79
  taskId;
57
80
  lockedBy;
81
+ static code = "LOCK_ERROR";
82
+ static suggestion = "Wait for the lock to expire (30 min) or contact the lock holder.";
58
83
  constructor(taskId, lockedBy) {
59
84
  super(`Task ${taskId} is locked by ${lockedBy}`);
60
85
  this.taskId = taskId;
@@ -65,6 +90,8 @@ var init_types = __esm(() => {
65
90
  CompletionGuardError = class CompletionGuardError extends Error {
66
91
  reason;
67
92
  retryAfterSeconds;
93
+ static code = "COMPLETION_BLOCKED";
94
+ static suggestion = "Wait for the cooldown period, then retry.";
68
95
  constructor(reason, retryAfterSeconds) {
69
96
  super(reason);
70
97
  this.reason = reason;
@@ -254,6 +281,8 @@ function ensureSchema(db) {
254
281
  ensureColumn("tasks", "requires_approval", "INTEGER NOT NULL DEFAULT 0");
255
282
  ensureColumn("tasks", "approved_by", "TEXT");
256
283
  ensureColumn("tasks", "approved_at", "TEXT");
284
+ ensureColumn("tasks", "recurrence_rule", "TEXT");
285
+ ensureColumn("tasks", "recurrence_parent_id", "TEXT REFERENCES tasks(id) ON DELETE SET NULL");
257
286
  ensureColumn("agents", "role", "TEXT DEFAULT 'agent'");
258
287
  ensureColumn("agents", "permissions", `TEXT DEFAULT '["*"]'`);
259
288
  ensureColumn("agents", "reports_to", "TEXT");
@@ -278,6 +307,8 @@ function ensureSchema(db) {
278
307
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_agent ON plans(agent_id)");
279
308
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_history_task ON task_history(task_id)");
280
309
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_history_agent ON task_history(agent_id)");
310
+ ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_parent ON tasks(recurrence_parent_id)");
311
+ ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_rule ON tasks(recurrence_rule) WHERE recurrence_rule IS NOT NULL");
281
312
  }
282
313
  function backfillTaskTags(db) {
283
314
  try {
@@ -557,6 +588,13 @@ var init_database = __esm(() => {
557
588
  ALTER TABLE agents ADD COLUMN org_id TEXT REFERENCES orgs(id) ON DELETE SET NULL;
558
589
  ALTER TABLE projects ADD COLUMN org_id TEXT REFERENCES orgs(id) ON DELETE SET NULL;
559
590
  INSERT OR IGNORE INTO _migrations (id) VALUES (12);
591
+ `,
592
+ `
593
+ ALTER TABLE tasks ADD COLUMN recurrence_rule TEXT;
594
+ ALTER TABLE tasks ADD COLUMN recurrence_parent_id TEXT REFERENCES tasks(id) ON DELETE SET NULL;
595
+ CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_parent ON tasks(recurrence_parent_id);
596
+ CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_rule ON tasks(recurrence_rule) WHERE recurrence_rule IS NOT NULL;
597
+ INSERT OR IGNORE INTO _migrations (id) VALUES (13);
560
598
  `
561
599
  ];
562
600
  });
@@ -704,6 +742,57 @@ var init_audit = __esm(() => {
704
742
  init_database();
705
743
  });
706
744
 
745
+ // src/db/webhooks.ts
746
+ var exports_webhooks = {};
747
+ __export(exports_webhooks, {
748
+ listWebhooks: () => listWebhooks,
749
+ getWebhook: () => getWebhook,
750
+ dispatchWebhook: () => dispatchWebhook,
751
+ deleteWebhook: () => deleteWebhook,
752
+ createWebhook: () => createWebhook
753
+ });
754
+ function rowToWebhook(row) {
755
+ return { ...row, events: JSON.parse(row.events || "[]"), active: !!row.active };
756
+ }
757
+ function createWebhook(input, db) {
758
+ const d = db || getDatabase();
759
+ const id = uuid();
760
+ d.run(`INSERT INTO webhooks (id, url, events, secret, created_at) VALUES (?, ?, ?, ?, ?)`, [id, input.url, JSON.stringify(input.events || []), input.secret || null, now()]);
761
+ return getWebhook(id, d);
762
+ }
763
+ function getWebhook(id, db) {
764
+ const d = db || getDatabase();
765
+ const row = d.query("SELECT * FROM webhooks WHERE id = ?").get(id);
766
+ return row ? rowToWebhook(row) : null;
767
+ }
768
+ function listWebhooks(db) {
769
+ const d = db || getDatabase();
770
+ return d.query("SELECT * FROM webhooks ORDER BY created_at DESC").all().map(rowToWebhook);
771
+ }
772
+ function deleteWebhook(id, db) {
773
+ const d = db || getDatabase();
774
+ return d.run("DELETE FROM webhooks WHERE id = ?", [id]).changes > 0;
775
+ }
776
+ async function dispatchWebhook(event, payload, db) {
777
+ const webhooks = listWebhooks(db).filter((w) => w.active && (w.events.length === 0 || w.events.includes(event)));
778
+ for (const wh of webhooks) {
779
+ try {
780
+ const body = JSON.stringify({ event, payload, timestamp: now() });
781
+ const headers = { "Content-Type": "application/json" };
782
+ if (wh.secret) {
783
+ const encoder = new TextEncoder;
784
+ const key = await crypto.subtle.importKey("raw", encoder.encode(wh.secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
785
+ const sig = await crypto.subtle.sign("HMAC", key, encoder.encode(body));
786
+ headers["X-Webhook-Signature"] = Array.from(new Uint8Array(sig)).map((b) => b.toString(16).padStart(2, "0")).join("");
787
+ }
788
+ fetch(wh.url, { method: "POST", headers, body }).catch(() => {});
789
+ } catch {}
790
+ }
791
+ }
792
+ var init_webhooks = __esm(() => {
793
+ init_database();
794
+ });
795
+
707
796
  // src/db/agents.ts
708
797
  var exports_agents = {};
709
798
  __export(exports_agents, {
@@ -912,57 +1001,6 @@ var init_orgs = __esm(() => {
912
1001
  init_database();
913
1002
  });
914
1003
 
915
- // src/db/webhooks.ts
916
- var exports_webhooks = {};
917
- __export(exports_webhooks, {
918
- listWebhooks: () => listWebhooks,
919
- getWebhook: () => getWebhook,
920
- dispatchWebhook: () => dispatchWebhook,
921
- deleteWebhook: () => deleteWebhook,
922
- createWebhook: () => createWebhook
923
- });
924
- function rowToWebhook(row) {
925
- return { ...row, events: JSON.parse(row.events || "[]"), active: !!row.active };
926
- }
927
- function createWebhook(input, db) {
928
- const d = db || getDatabase();
929
- const id = uuid();
930
- d.run(`INSERT INTO webhooks (id, url, events, secret, created_at) VALUES (?, ?, ?, ?, ?)`, [id, input.url, JSON.stringify(input.events || []), input.secret || null, now()]);
931
- return getWebhook(id, d);
932
- }
933
- function getWebhook(id, db) {
934
- const d = db || getDatabase();
935
- const row = d.query("SELECT * FROM webhooks WHERE id = ?").get(id);
936
- return row ? rowToWebhook(row) : null;
937
- }
938
- function listWebhooks(db) {
939
- const d = db || getDatabase();
940
- return d.query("SELECT * FROM webhooks ORDER BY created_at DESC").all().map(rowToWebhook);
941
- }
942
- function deleteWebhook(id, db) {
943
- const d = db || getDatabase();
944
- return d.run("DELETE FROM webhooks WHERE id = ?", [id]).changes > 0;
945
- }
946
- async function dispatchWebhook(event, payload, db) {
947
- const webhooks = listWebhooks(db).filter((w) => w.active && (w.events.length === 0 || w.events.includes(event)));
948
- for (const wh of webhooks) {
949
- try {
950
- const body = JSON.stringify({ event, payload, timestamp: now() });
951
- const headers = { "Content-Type": "application/json" };
952
- if (wh.secret) {
953
- const encoder = new TextEncoder;
954
- const key = await crypto.subtle.importKey("raw", encoder.encode(wh.secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
955
- const sig = await crypto.subtle.sign("HMAC", key, encoder.encode(body));
956
- headers["X-Webhook-Signature"] = Array.from(new Uint8Array(sig)).map((b) => b.toString(16).padStart(2, "0")).join("");
957
- }
958
- fetch(wh.url, { method: "POST", headers, body }).catch(() => {});
959
- } catch {}
960
- }
961
- }
962
- var init_webhooks = __esm(() => {
963
- init_database();
964
- });
965
-
966
1004
  // src/db/templates.ts
967
1005
  var exports_templates = {};
968
1006
  __export(exports_templates, {
@@ -1138,6 +1176,96 @@ function checkCompletionGuard(task, agentId, db, configOverride) {
1138
1176
 
1139
1177
  // src/db/tasks.ts
1140
1178
  init_audit();
1179
+
1180
+ // src/lib/recurrence.ts
1181
+ var DAY_NAMES = {
1182
+ sunday: 0,
1183
+ sun: 0,
1184
+ monday: 1,
1185
+ mon: 1,
1186
+ tuesday: 2,
1187
+ tue: 2,
1188
+ wednesday: 3,
1189
+ wed: 3,
1190
+ thursday: 4,
1191
+ thu: 4,
1192
+ friday: 5,
1193
+ fri: 5,
1194
+ saturday: 6,
1195
+ sat: 6
1196
+ };
1197
+ function parseRecurrenceRule(rule) {
1198
+ const normalized = rule.trim().toLowerCase();
1199
+ if (normalized === "every weekday" || normalized === "every weekdays") {
1200
+ return { type: "specific_days", days: [1, 2, 3, 4, 5] };
1201
+ }
1202
+ if (normalized === "every day" || normalized === "daily") {
1203
+ return { type: "interval", interval: 1, unit: "day" };
1204
+ }
1205
+ if (normalized === "every week" || normalized === "weekly") {
1206
+ return { type: "interval", interval: 1, unit: "week" };
1207
+ }
1208
+ if (normalized === "every month" || normalized === "monthly") {
1209
+ return { type: "interval", interval: 1, unit: "month" };
1210
+ }
1211
+ const intervalMatch = normalized.match(/^every\s+(\d+)\s+(day|week|month)s?$/);
1212
+ if (intervalMatch) {
1213
+ return {
1214
+ type: "interval",
1215
+ interval: parseInt(intervalMatch[1], 10),
1216
+ unit: intervalMatch[2]
1217
+ };
1218
+ }
1219
+ const daysMatch = normalized.match(/^every\s+(.+)$/);
1220
+ if (daysMatch) {
1221
+ const dayParts = daysMatch[1].split(/[,\s]+/).map((d) => d.trim()).filter(Boolean);
1222
+ const days = [];
1223
+ for (const part of dayParts) {
1224
+ const dayNum = DAY_NAMES[part];
1225
+ if (dayNum !== undefined) {
1226
+ days.push(dayNum);
1227
+ }
1228
+ }
1229
+ if (days.length > 0) {
1230
+ return { type: "specific_days", days: days.sort((a, b) => a - b) };
1231
+ }
1232
+ }
1233
+ throw new Error(`Invalid recurrence rule: "${rule}". Supported formats: "every day", "every weekday", "every week", "every 2 weeks", "every month", "every N days/weeks/months", "every monday", "every mon,wed,fri"`);
1234
+ }
1235
+ function nextOccurrence(rule, from) {
1236
+ const parsed = parseRecurrenceRule(rule);
1237
+ const base = from || new Date;
1238
+ if (parsed.type === "interval") {
1239
+ const next = new Date(base);
1240
+ if (parsed.unit === "day") {
1241
+ next.setDate(next.getDate() + parsed.interval);
1242
+ } else if (parsed.unit === "week") {
1243
+ next.setDate(next.getDate() + parsed.interval * 7);
1244
+ } else if (parsed.unit === "month") {
1245
+ next.setMonth(next.getMonth() + parsed.interval);
1246
+ }
1247
+ return next.toISOString();
1248
+ }
1249
+ if (parsed.type === "specific_days") {
1250
+ const currentDay = base.getDay();
1251
+ const days = parsed.days;
1252
+ let daysToAdd = Infinity;
1253
+ for (const day of days) {
1254
+ let diff = day - currentDay;
1255
+ if (diff <= 0)
1256
+ diff += 7;
1257
+ if (diff < daysToAdd)
1258
+ daysToAdd = diff;
1259
+ }
1260
+ const next = new Date(base);
1261
+ next.setDate(next.getDate() + daysToAdd);
1262
+ return next.toISOString();
1263
+ }
1264
+ throw new Error(`Cannot calculate next occurrence for rule: "${rule}"`);
1265
+ }
1266
+
1267
+ // src/db/tasks.ts
1268
+ init_webhooks();
1141
1269
  function rowToTask(row) {
1142
1270
  return {
1143
1271
  ...row,
@@ -1168,8 +1296,8 @@ function createTask(input, db) {
1168
1296
  const tags = input.tags || [];
1169
1297
  const shortId = input.project_id ? nextTaskShortId(input.project_id, d) : null;
1170
1298
  const title = shortId ? `${shortId}: ${input.title}` : input.title;
1171
- d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, title, description, status, priority, agent_id, assigned_to, session_id, working_dir, tags, metadata, version, created_at, updated_at, due_at, estimated_minutes, requires_approval, approved_by, approved_at)
1172
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?)`, [
1299
+ d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, title, description, status, priority, agent_id, assigned_to, session_id, working_dir, tags, metadata, version, created_at, updated_at, due_at, estimated_minutes, requires_approval, approved_by, approved_at, recurrence_rule, recurrence_parent_id)
1300
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
1173
1301
  id,
1174
1302
  shortId,
1175
1303
  input.project_id || null,
@@ -1192,12 +1320,16 @@ function createTask(input, db) {
1192
1320
  input.estimated_minutes || null,
1193
1321
  input.requires_approval ? 1 : 0,
1194
1322
  null,
1195
- null
1323
+ null,
1324
+ input.recurrence_rule || null,
1325
+ input.recurrence_parent_id || null
1196
1326
  ]);
1197
1327
  if (tags.length > 0) {
1198
1328
  insertTaskTags(id, tags, d);
1199
1329
  }
1200
- return getTask(id, d);
1330
+ const task = getTask(id, d);
1331
+ dispatchWebhook("task.created", { id: task.id, short_id: task.short_id, title: task.title, status: task.status, priority: task.priority, project_id: task.project_id, assigned_to: task.assigned_to }, d).catch(() => {});
1332
+ return task;
1201
1333
  }
1202
1334
  function getTask(id, db) {
1203
1335
  const d = db || getDatabase();
@@ -1266,6 +1398,11 @@ function listTasks(filter = {}, db) {
1266
1398
  conditions.push("task_list_id = ?");
1267
1399
  params.push(filter.task_list_id);
1268
1400
  }
1401
+ if (filter.has_recurrence === true) {
1402
+ conditions.push("recurrence_rule IS NOT NULL");
1403
+ } else if (filter.has_recurrence === false) {
1404
+ conditions.push("recurrence_rule IS NULL");
1405
+ }
1269
1406
  const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
1270
1407
  let limitClause = "";
1271
1408
  if (filter.limit) {
@@ -1352,6 +1489,10 @@ function updateTask(id, input, db) {
1352
1489
  sets.push("approved_at = ?");
1353
1490
  params.push(now());
1354
1491
  }
1492
+ if (input.recurrence_rule !== undefined) {
1493
+ sets.push("recurrence_rule = ?");
1494
+ params.push(input.recurrence_rule);
1495
+ }
1355
1496
  params.push(id, input.version);
1356
1497
  const result = d.run(`UPDATE tasks SET ${sets.join(", ")} WHERE id = ? AND version = ?`, params);
1357
1498
  if (result.changes === 0) {
@@ -1372,6 +1513,12 @@ function updateTask(id, input, db) {
1372
1513
  logTaskChange(id, "update", "assigned_to", task.assigned_to, input.assigned_to, agentId, d);
1373
1514
  if (input.approved_by !== undefined)
1374
1515
  logTaskChange(id, "approve", "approved_by", null, input.approved_by, agentId, d);
1516
+ if (input.assigned_to !== undefined && input.assigned_to !== task.assigned_to) {
1517
+ dispatchWebhook("task.assigned", { id, assigned_to: input.assigned_to, title: task.title }, d).catch(() => {});
1518
+ }
1519
+ if (input.status !== undefined && input.status !== task.status) {
1520
+ dispatchWebhook("task.status_changed", { id, old_status: task.status, new_status: input.status, title: task.title }, d).catch(() => {});
1521
+ }
1375
1522
  return {
1376
1523
  ...task,
1377
1524
  ...Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined)),
@@ -1423,9 +1570,10 @@ function startTask(id, agentId, db) {
1423
1570
  }
1424
1571
  }
1425
1572
  logTaskChange(id, "start", "status", "pending", "in_progress", agentId, d);
1573
+ dispatchWebhook("task.started", { id, agent_id: agentId, title: task.title }, d).catch(() => {});
1426
1574
  return { ...task, status: "in_progress", assigned_to: agentId, locked_by: agentId, locked_at: timestamp, version: task.version + 1, updated_at: timestamp };
1427
1575
  }
1428
- function completeTask(id, agentId, db, evidence) {
1576
+ function completeTask(id, agentId, db, options) {
1429
1577
  const d = db || getDatabase();
1430
1578
  const task = getTask(id, d);
1431
1579
  if (!task)
@@ -1434,7 +1582,9 @@ function completeTask(id, agentId, db, evidence) {
1434
1582
  throw new LockError(id, task.locked_by);
1435
1583
  }
1436
1584
  checkCompletionGuard(task, agentId || null, d);
1437
- if (evidence) {
1585
+ const evidence = options ? { files_changed: options.files_changed, test_results: options.test_results, commit_hash: options.commit_hash, notes: options.notes } : undefined;
1586
+ const hasEvidence = evidence && (evidence.files_changed || evidence.test_results || evidence.commit_hash || evidence.notes);
1587
+ if (hasEvidence) {
1438
1588
  const meta2 = { ...task.metadata, _evidence: evidence };
1439
1589
  d.run("UPDATE tasks SET metadata = ? WHERE id = ?", [JSON.stringify(meta2), id]);
1440
1590
  }
@@ -1442,13 +1592,44 @@ function completeTask(id, agentId, db, evidence) {
1442
1592
  d.run(`UPDATE tasks SET status = 'completed', locked_by = NULL, locked_at = NULL, completed_at = ?, version = version + 1, updated_at = ?
1443
1593
  WHERE id = ?`, [timestamp, timestamp, id]);
1444
1594
  logTaskChange(id, "complete", "status", task.status, "completed", agentId || null, d);
1445
- const meta = evidence ? { ...task.metadata, _evidence: evidence } : task.metadata;
1595
+ dispatchWebhook("task.completed", { id, agent_id: agentId, title: task.title, completed_at: timestamp }, d).catch(() => {});
1596
+ let spawnedTask = null;
1597
+ if (task.recurrence_rule && !options?.skip_recurrence) {
1598
+ spawnedTask = spawnNextRecurrence(task, d);
1599
+ }
1600
+ const meta = hasEvidence ? { ...task.metadata, _evidence: evidence } : task.metadata;
1601
+ if (spawnedTask) {
1602
+ meta._next_recurrence = { id: spawnedTask.id, short_id: spawnedTask.short_id, due_at: spawnedTask.due_at };
1603
+ }
1446
1604
  return { ...task, status: "completed", locked_by: null, locked_at: null, completed_at: timestamp, version: task.version + 1, updated_at: timestamp, metadata: meta };
1447
1605
  }
1448
1606
  function getTaskDependencies(taskId, db) {
1449
1607
  const d = db || getDatabase();
1450
1608
  return d.query("SELECT * FROM task_dependencies WHERE task_id = ?").all(taskId);
1451
1609
  }
1610
+ function spawnNextRecurrence(completedTask, db) {
1611
+ const dueAt = nextOccurrence(completedTask.recurrence_rule, new Date);
1612
+ let title = completedTask.title;
1613
+ if (completedTask.short_id && title.startsWith(completedTask.short_id + ": ")) {
1614
+ title = title.slice(completedTask.short_id.length + 2);
1615
+ }
1616
+ const recurrenceParentId = completedTask.recurrence_parent_id || completedTask.id;
1617
+ return createTask({
1618
+ title,
1619
+ description: completedTask.description ?? undefined,
1620
+ priority: completedTask.priority,
1621
+ project_id: completedTask.project_id ?? undefined,
1622
+ task_list_id: completedTask.task_list_id ?? undefined,
1623
+ plan_id: completedTask.plan_id ?? undefined,
1624
+ assigned_to: completedTask.assigned_to ?? undefined,
1625
+ tags: completedTask.tags,
1626
+ metadata: completedTask.metadata,
1627
+ estimated_minutes: completedTask.estimated_minutes ?? undefined,
1628
+ recurrence_rule: completedTask.recurrence_rule,
1629
+ recurrence_parent_id: recurrenceParentId,
1630
+ due_at: dueAt
1631
+ }, db);
1632
+ }
1452
1633
 
1453
1634
  // src/server/serve.ts
1454
1635
  init_projects();
@@ -160,6 +160,8 @@ export interface Task {
160
160
  requires_approval: boolean;
161
161
  approved_by: string | null;
162
162
  approved_at: string | null;
163
+ recurrence_rule: string | null;
164
+ recurrence_parent_id: string | null;
163
165
  }
164
166
  export interface TaskWithRelations extends Task {
165
167
  subtasks: Task[];
@@ -186,6 +188,8 @@ export interface CreateTaskInput {
186
188
  due_at?: string;
187
189
  estimated_minutes?: number;
188
190
  requires_approval?: boolean;
191
+ recurrence_rule?: string;
192
+ recurrence_parent_id?: string;
189
193
  }
190
194
  export interface UpdateTaskInput {
191
195
  title?: string;
@@ -201,6 +205,7 @@ export interface UpdateTaskInput {
201
205
  estimated_minutes?: number;
202
206
  requires_approval?: boolean;
203
207
  approved_by?: string;
208
+ recurrence_rule?: string | null;
204
209
  version: number;
205
210
  }
206
211
  export interface TaskFilter {
@@ -214,6 +219,7 @@ export interface TaskFilter {
214
219
  agent_id?: string;
215
220
  session_id?: string;
216
221
  tags?: string[];
222
+ has_recurrence?: boolean;
217
223
  include_subtasks?: boolean;
218
224
  limit?: number;
219
225
  offset?: number;
@@ -279,6 +285,8 @@ export interface TaskRow {
279
285
  requires_approval: number;
280
286
  approved_by: string | null;
281
287
  approved_at: string | null;
288
+ recurrence_rule: string | null;
289
+ recurrence_parent_id: string | null;
282
290
  }
283
291
  export interface SessionRow {
284
292
  id: string;
@@ -344,41 +352,59 @@ export declare class VersionConflictError extends Error {
344
352
  taskId: string;
345
353
  expectedVersion: number;
346
354
  actualVersion: number;
355
+ static readonly code = "VERSION_CONFLICT";
356
+ static readonly suggestion = "Fetch the task with get_task to get the current version before updating.";
347
357
  constructor(taskId: string, expectedVersion: number, actualVersion: number);
348
358
  }
349
359
  export declare class TaskNotFoundError extends Error {
350
360
  taskId: string;
361
+ static readonly code = "TASK_NOT_FOUND";
362
+ static readonly suggestion = "Verify the task ID. Use list_tasks or search_tasks to find the correct ID.";
351
363
  constructor(taskId: string);
352
364
  }
353
365
  export declare class ProjectNotFoundError extends Error {
354
366
  projectId: string;
367
+ static readonly code = "PROJECT_NOT_FOUND";
368
+ static readonly suggestion = "Use list_projects to see available projects.";
355
369
  constructor(projectId: string);
356
370
  }
357
371
  export declare class PlanNotFoundError extends Error {
358
372
  planId: string;
373
+ static readonly code = "PLAN_NOT_FOUND";
374
+ static readonly suggestion = "Use list_plans to see available plans.";
359
375
  constructor(planId: string);
360
376
  }
361
377
  export declare class LockError extends Error {
362
378
  taskId: string;
363
379
  lockedBy: string;
380
+ static readonly code = "LOCK_ERROR";
381
+ static readonly suggestion = "Wait for the lock to expire (30 min) or contact the lock holder.";
364
382
  constructor(taskId: string, lockedBy: string);
365
383
  }
366
384
  export declare class AgentNotFoundError extends Error {
367
385
  agentId: string;
386
+ static readonly code = "AGENT_NOT_FOUND";
387
+ static readonly suggestion = "Use register_agent to create the agent first, or list_agents to find existing ones.";
368
388
  constructor(agentId: string);
369
389
  }
370
390
  export declare class TaskListNotFoundError extends Error {
371
391
  taskListId: string;
392
+ static readonly code = "TASK_LIST_NOT_FOUND";
393
+ static readonly suggestion = "Use list_task_lists to see available lists.";
372
394
  constructor(taskListId: string);
373
395
  }
374
396
  export declare class DependencyCycleError extends Error {
375
397
  taskId: string;
376
398
  dependsOn: string;
399
+ static readonly code = "DEPENDENCY_CYCLE";
400
+ static readonly suggestion = "Check the dependency chain with get_task to avoid circular references.";
377
401
  constructor(taskId: string, dependsOn: string);
378
402
  }
379
403
  export declare class CompletionGuardError extends Error {
380
404
  reason: string;
381
405
  retryAfterSeconds?: number | undefined;
406
+ static readonly code = "COMPLETION_BLOCKED";
407
+ static readonly suggestion = "Wait for the cooldown period, then retry.";
382
408
  constructor(reason: string, retryAfterSeconds?: number | undefined);
383
409
  }
384
410
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/todos",
3
- "version": "0.9.34",
3
+ "version": "0.9.37",
4
4
  "description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",