@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.
- package/dist/cli/index.js +1402 -154
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/tasks.d.ts +127 -1
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +709 -52
- package/dist/lib/recurrence.d.ts +10 -0
- package/dist/lib/recurrence.d.ts.map +1 -0
- package/dist/lib/search.d.ts +14 -1
- package/dist/lib/search.d.ts.map +1 -1
- package/dist/mcp/index.js +1450 -192
- package/dist/server/index.js +239 -58
- package/dist/types/index.d.ts +26 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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();
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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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"}
|