@hasna/todos 0.11.58 → 0.11.59
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/README.md +38 -0
- package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
- package/dist/cli/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/index.js +1420 -187
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +502 -4
- package/dist/db/findings.d.ts +108 -0
- package/dist/db/findings.d.ts.map +1 -0
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-crud.d.ts +3 -1
- package/dist/db/task-crud.d.ts.map +1 -1
- package/dist/db/task-runs.d.ts +56 -0
- package/dist/db/task-runs.d.ts.map +1 -1
- package/dist/db/tasks.d.ts +2 -2
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +870 -5
- package/dist/json-contracts.d.ts.map +1 -1
- package/dist/lib/access-profiles.d.ts.map +1 -1
- package/dist/lib/event-hooks.d.ts +1 -1
- package/dist/lib/event-hooks.d.ts.map +1 -1
- package/dist/lib/shared-events.d.ts +1 -1
- package/dist/lib/shared-events.d.ts.map +1 -1
- package/dist/mcp/index.js +984 -17
- package/dist/mcp/token-utils.d.ts.map +1 -1
- package/dist/mcp/tools/task-crud.d.ts.map +1 -1
- package/dist/mcp/tools/task-resources.d.ts.map +1 -1
- package/dist/mcp.js +12 -1
- package/dist/registry.js +502 -4
- package/dist/release-provenance.json +3 -3
- package/dist/server/index.js +984 -17
- package/dist/server/routes.d.ts +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/serve.d.ts +2 -0
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/storage.js +375 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/server/routes.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export declare function handleHeadlessBoundary(_ctx: RouteContext, json: (data:
|
|
|
32
32
|
export declare function handleStats(_ctx: RouteContext, json: (data: unknown, status?: number) => Response): Response;
|
|
33
33
|
export declare function handleListTasks(_req: Request, url: URL, _ctx: RouteContext, json: (data: unknown, status?: number) => Response, taskToSummary: (task: Task, fields?: string[]) => unknown): Promise<Response>;
|
|
34
34
|
export declare function handleCreateTask(req: Request, ctx: RouteContext, json: (data: unknown, status?: number) => Response, taskToSummary: (task: Task, fields?: string[]) => unknown): Promise<Response>;
|
|
35
|
+
export declare function handleUpsertTask(req: Request, ctx: RouteContext, json: (data: unknown, status?: number) => Response, taskToSummary: (task: Task, fields?: string[]) => unknown): Promise<Response>;
|
|
35
36
|
export declare function handleTasksExport(_req: Request, url: URL, _ctx: RouteContext, _json: (data: unknown, status?: number) => Response, taskToSummary: (task: Task, fields?: string[]) => unknown): Response;
|
|
36
37
|
export declare function handleTasksBulk(req: Request, _ctx: RouteContext, json: (data: unknown, status?: number) => Response): Promise<Response>;
|
|
37
38
|
export declare function handleTasksStatus(_req: Request, url: URL, _ctx: RouteContext, json: (data: unknown, status?: number) => Response): Response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/serve.d.ts
CHANGED
|
@@ -20,8 +20,10 @@ export declare function taskToSummary(task: Task, fields?: string[]): {
|
|
|
20
20
|
task_list_id: string | null;
|
|
21
21
|
agent_id: string | null;
|
|
22
22
|
assigned_to: string | null;
|
|
23
|
+
working_dir: string | null;
|
|
23
24
|
locked_by: string | null;
|
|
24
25
|
tags: string[];
|
|
26
|
+
metadata: Record<string, unknown>;
|
|
25
27
|
version: number;
|
|
26
28
|
created_at: string;
|
|
27
29
|
updated_at: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA+B9C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AA8CF,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CASjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAYjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA+B9C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AA8CF,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CASjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAYjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EA0B1D;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4b3H"}
|
package/dist/storage.js
CHANGED
|
@@ -1269,6 +1269,49 @@ var init_migrations = __esm(() => {
|
|
|
1269
1269
|
CREATE INDEX IF NOT EXISTS idx_local_retrospectives_plan ON local_retrospectives(plan_id);
|
|
1270
1270
|
CREATE INDEX IF NOT EXISTS idx_local_retrospectives_agent ON local_retrospectives(agent_id);
|
|
1271
1271
|
INSERT OR IGNORE INTO _migrations (id) VALUES (61);
|
|
1272
|
+
`,
|
|
1273
|
+
`
|
|
1274
|
+
CREATE TABLE IF NOT EXISTS task_run_transactions (
|
|
1275
|
+
id TEXT PRIMARY KEY,
|
|
1276
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1277
|
+
run_id TEXT REFERENCES task_runs(id) ON DELETE SET NULL,
|
|
1278
|
+
key TEXT NOT NULL,
|
|
1279
|
+
loop_id TEXT,
|
|
1280
|
+
loop_run_id TEXT,
|
|
1281
|
+
metadata TEXT DEFAULT '{}',
|
|
1282
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1283
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1284
|
+
UNIQUE(task_id, key)
|
|
1285
|
+
);
|
|
1286
|
+
CREATE INDEX IF NOT EXISTS idx_task_run_transactions_task_key ON task_run_transactions(task_id, key);
|
|
1287
|
+
CREATE INDEX IF NOT EXISTS idx_task_run_transactions_key ON task_run_transactions(key);
|
|
1288
|
+
CREATE INDEX IF NOT EXISTS idx_task_run_transactions_run ON task_run_transactions(run_id);
|
|
1289
|
+
|
|
1290
|
+
CREATE TABLE IF NOT EXISTS task_findings (
|
|
1291
|
+
id TEXT PRIMARY KEY,
|
|
1292
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1293
|
+
run_id TEXT REFERENCES task_runs(id) ON DELETE SET NULL,
|
|
1294
|
+
fingerprint TEXT NOT NULL,
|
|
1295
|
+
title TEXT NOT NULL,
|
|
1296
|
+
severity TEXT NOT NULL DEFAULT 'medium' CHECK(severity IN ('low', 'medium', 'high', 'critical')),
|
|
1297
|
+
status TEXT NOT NULL DEFAULT 'open' CHECK(status IN ('open', 'resolved', 'ignored')),
|
|
1298
|
+
source TEXT,
|
|
1299
|
+
summary TEXT,
|
|
1300
|
+
artifact_path TEXT,
|
|
1301
|
+
metadata TEXT DEFAULT '{}',
|
|
1302
|
+
first_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1303
|
+
last_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1304
|
+
resolved_at TEXT,
|
|
1305
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1306
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1307
|
+
UNIQUE(task_id, fingerprint)
|
|
1308
|
+
);
|
|
1309
|
+
CREATE INDEX IF NOT EXISTS idx_task_findings_task ON task_findings(task_id);
|
|
1310
|
+
CREATE INDEX IF NOT EXISTS idx_task_findings_run ON task_findings(run_id);
|
|
1311
|
+
CREATE INDEX IF NOT EXISTS idx_task_findings_status ON task_findings(status);
|
|
1312
|
+
CREATE INDEX IF NOT EXISTS idx_task_findings_source ON task_findings(source);
|
|
1313
|
+
CREATE INDEX IF NOT EXISTS idx_task_findings_fingerprint ON task_findings(fingerprint);
|
|
1314
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (62);
|
|
1272
1315
|
`
|
|
1273
1316
|
];
|
|
1274
1317
|
});
|
|
@@ -1706,6 +1749,47 @@ function ensureSchema(db) {
|
|
|
1706
1749
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_artifacts_run ON task_run_artifacts(run_id)");
|
|
1707
1750
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_artifacts_task ON task_run_artifacts(task_id)");
|
|
1708
1751
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_artifacts_path ON task_run_artifacts(path)");
|
|
1752
|
+
ensureTable("task_run_transactions", `
|
|
1753
|
+
CREATE TABLE task_run_transactions (
|
|
1754
|
+
id TEXT PRIMARY KEY,
|
|
1755
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1756
|
+
run_id TEXT REFERENCES task_runs(id) ON DELETE SET NULL,
|
|
1757
|
+
key TEXT NOT NULL,
|
|
1758
|
+
loop_id TEXT,
|
|
1759
|
+
loop_run_id TEXT,
|
|
1760
|
+
metadata TEXT DEFAULT '{}',
|
|
1761
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1762
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1763
|
+
UNIQUE(task_id, key)
|
|
1764
|
+
)`);
|
|
1765
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_transactions_task_key ON task_run_transactions(task_id, key)");
|
|
1766
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_transactions_key ON task_run_transactions(key)");
|
|
1767
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_run_transactions_run ON task_run_transactions(run_id)");
|
|
1768
|
+
ensureTable("task_findings", `
|
|
1769
|
+
CREATE TABLE task_findings (
|
|
1770
|
+
id TEXT PRIMARY KEY,
|
|
1771
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1772
|
+
run_id TEXT REFERENCES task_runs(id) ON DELETE SET NULL,
|
|
1773
|
+
fingerprint TEXT NOT NULL,
|
|
1774
|
+
title TEXT NOT NULL,
|
|
1775
|
+
severity TEXT NOT NULL DEFAULT 'medium' CHECK(severity IN ('low', 'medium', 'high', 'critical')),
|
|
1776
|
+
status TEXT NOT NULL DEFAULT 'open' CHECK(status IN ('open', 'resolved', 'ignored')),
|
|
1777
|
+
source TEXT,
|
|
1778
|
+
summary TEXT,
|
|
1779
|
+
artifact_path TEXT,
|
|
1780
|
+
metadata TEXT DEFAULT '{}',
|
|
1781
|
+
first_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1782
|
+
last_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1783
|
+
resolved_at TEXT,
|
|
1784
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1785
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1786
|
+
UNIQUE(task_id, fingerprint)
|
|
1787
|
+
)`);
|
|
1788
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_findings_task ON task_findings(task_id)");
|
|
1789
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_findings_run ON task_findings(run_id)");
|
|
1790
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_findings_status ON task_findings(status)");
|
|
1791
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_findings_source ON task_findings(source)");
|
|
1792
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_findings_fingerprint ON task_findings(fingerprint)");
|
|
1709
1793
|
ensureTable("inbox_items", `
|
|
1710
1794
|
CREATE TABLE inbox_items (
|
|
1711
1795
|
id TEXT PRIMARY KEY,
|
|
@@ -4180,6 +4264,7 @@ var LOCAL_EVENT_TYPES = [
|
|
|
4180
4264
|
"task.blocked",
|
|
4181
4265
|
"task.started",
|
|
4182
4266
|
"task.completed",
|
|
4267
|
+
"task.updated",
|
|
4183
4268
|
"task.due",
|
|
4184
4269
|
"task.due_soon",
|
|
4185
4270
|
"task.failed",
|
|
@@ -5518,6 +5603,17 @@ function replaceTaskTags(taskId, tags, db) {
|
|
|
5518
5603
|
db.run("DELETE FROM task_tags WHERE task_id = ?", [taskId]);
|
|
5519
5604
|
insertTaskTags(taskId, tags, db);
|
|
5520
5605
|
}
|
|
5606
|
+
function addMetadataConditions(metadata, conditions, params) {
|
|
5607
|
+
if (!metadata)
|
|
5608
|
+
return;
|
|
5609
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
5610
|
+
if (!/^[A-Za-z0-9_.-]+$/.test(key)) {
|
|
5611
|
+
throw new Error(`Invalid metadata filter key: ${key}`);
|
|
5612
|
+
}
|
|
5613
|
+
conditions.push(`json_extract(metadata, '$."${key}"') = ?`);
|
|
5614
|
+
params.push(value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? value : JSON.stringify(value));
|
|
5615
|
+
}
|
|
5616
|
+
}
|
|
5521
5617
|
function createTask(input, db) {
|
|
5522
5618
|
const d = db || getDatabase();
|
|
5523
5619
|
const timestamp = now();
|
|
@@ -5700,6 +5796,7 @@ function listTasks(filter = {}, db) {
|
|
|
5700
5796
|
params.push(filter.task_type);
|
|
5701
5797
|
}
|
|
5702
5798
|
}
|
|
5799
|
+
addMetadataConditions(filter.metadata, conditions, params);
|
|
5703
5800
|
const PRIORITY_RANK = `CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END`;
|
|
5704
5801
|
if (filter.cursor) {
|
|
5705
5802
|
try {
|
|
@@ -5724,6 +5821,54 @@ function listTasks(filter = {}, db) {
|
|
|
5724
5821
|
const rows = d.query(`SELECT * FROM tasks ${where} ORDER BY ${PRIORITY_RANK}, created_at DESC${limitClause}`).all(...params);
|
|
5725
5822
|
return rows.map(rowToTask);
|
|
5726
5823
|
}
|
|
5824
|
+
function getTaskByFingerprint(fingerprint, db) {
|
|
5825
|
+
const tasks = listTasks({ metadata: { fingerprint }, limit: 1 }, db);
|
|
5826
|
+
return tasks[0] ?? null;
|
|
5827
|
+
}
|
|
5828
|
+
function mergeTaskMetadata(current, next, fingerprint) {
|
|
5829
|
+
return {
|
|
5830
|
+
...current,
|
|
5831
|
+
...next ?? {},
|
|
5832
|
+
fingerprint
|
|
5833
|
+
};
|
|
5834
|
+
}
|
|
5835
|
+
function upsertTaskByFingerprint(input, db) {
|
|
5836
|
+
const d = db || getDatabase();
|
|
5837
|
+
const fingerprint = input.fingerprint.trim();
|
|
5838
|
+
if (!fingerprint)
|
|
5839
|
+
throw new Error("fingerprint is required");
|
|
5840
|
+
const existing = getTaskByFingerprint(fingerprint, d);
|
|
5841
|
+
const metadata = mergeTaskMetadata(existing?.metadata ?? {}, input.metadata, fingerprint);
|
|
5842
|
+
if (!existing) {
|
|
5843
|
+
const task2 = createTask({ ...input, metadata }, d);
|
|
5844
|
+
return { task: task2, created: true };
|
|
5845
|
+
}
|
|
5846
|
+
const task = updateTask(existing.id, {
|
|
5847
|
+
version: existing.version,
|
|
5848
|
+
title: input.title,
|
|
5849
|
+
description: input.description,
|
|
5850
|
+
status: input.status,
|
|
5851
|
+
priority: input.priority,
|
|
5852
|
+
project_id: input.project_id,
|
|
5853
|
+
assigned_to: input.assigned_to,
|
|
5854
|
+
working_dir: input.working_dir,
|
|
5855
|
+
plan_id: input.plan_id,
|
|
5856
|
+
task_list_id: input.task_list_id,
|
|
5857
|
+
tags: input.tags,
|
|
5858
|
+
metadata,
|
|
5859
|
+
due_at: input.due_at,
|
|
5860
|
+
estimated_minutes: input.estimated_minutes,
|
|
5861
|
+
sla_minutes: input.sla_minutes,
|
|
5862
|
+
confidence: input.confidence,
|
|
5863
|
+
retry_count: input.retry_count,
|
|
5864
|
+
max_retries: input.max_retries,
|
|
5865
|
+
retry_after: input.retry_after,
|
|
5866
|
+
requires_approval: input.requires_approval,
|
|
5867
|
+
recurrence_rule: input.recurrence_rule,
|
|
5868
|
+
task_type: input.task_type
|
|
5869
|
+
}, d);
|
|
5870
|
+
return { task, created: false };
|
|
5871
|
+
}
|
|
5727
5872
|
function countTasks(filter = {}, db) {
|
|
5728
5873
|
const d = db || getDatabase();
|
|
5729
5874
|
const conditions = [];
|
|
@@ -5787,6 +5932,7 @@ function countTasks(filter = {}, db) {
|
|
|
5787
5932
|
conditions.push("task_list_id = ?");
|
|
5788
5933
|
params.push(filter.task_list_id);
|
|
5789
5934
|
}
|
|
5935
|
+
addMetadataConditions(filter.metadata, conditions, params);
|
|
5790
5936
|
if (!filter.include_archived) {
|
|
5791
5937
|
conditions.push("archived_at IS NULL");
|
|
5792
5938
|
}
|
|
@@ -5837,6 +5983,10 @@ function updateTask(id, input, db) {
|
|
|
5837
5983
|
sets.push("assigned_to = ?");
|
|
5838
5984
|
params.push(input.assigned_to);
|
|
5839
5985
|
}
|
|
5986
|
+
if (input.working_dir !== undefined) {
|
|
5987
|
+
sets.push("working_dir = ?");
|
|
5988
|
+
params.push(input.working_dir);
|
|
5989
|
+
}
|
|
5840
5990
|
if (input.tags !== undefined) {
|
|
5841
5991
|
sets.push("tags = ?");
|
|
5842
5992
|
params.push(JSON.stringify(input.tags));
|
|
@@ -5925,6 +6075,8 @@ function updateTask(id, input, db) {
|
|
|
5925
6075
|
logTaskChange(id, "update", "title", task.title, input.title, agentId, d);
|
|
5926
6076
|
if (input.assigned_to !== undefined && input.assigned_to !== task.assigned_to)
|
|
5927
6077
|
logTaskChange(id, "update", "assigned_to", task.assigned_to, input.assigned_to, agentId, d);
|
|
6078
|
+
if (input.working_dir !== undefined && input.working_dir !== task.working_dir)
|
|
6079
|
+
logTaskChange(id, "update", "working_dir", task.working_dir, input.working_dir, agentId, d);
|
|
5928
6080
|
if (input.approved_by !== undefined)
|
|
5929
6081
|
logTaskChange(id, "approve", "approved_by", null, input.approved_by, agentId, d);
|
|
5930
6082
|
const updatedTask = {
|
|
@@ -5960,6 +6112,10 @@ function updateTask(id, input, db) {
|
|
|
5960
6112
|
if (input.approved_by !== undefined) {
|
|
5961
6113
|
emitLocalEventHooksQuiet({ type: "approval.decided", payload: { id, approved_by: input.approved_by, title: task.title } });
|
|
5962
6114
|
}
|
|
6115
|
+
const updatePayload = taskEventData(updatedTask);
|
|
6116
|
+
dispatchWebhook2("task.updated", updatePayload, d).catch(() => {});
|
|
6117
|
+
emitLocalEventHooksQuiet({ type: "task.updated", payload: updatePayload });
|
|
6118
|
+
emitSharedTaskEventQuiet({ type: "task.updated", task: updatedTask });
|
|
5963
6119
|
return updatedTask;
|
|
5964
6120
|
}
|
|
5965
6121
|
function deleteTask(id, db) {
|
|
@@ -8655,6 +8811,7 @@ function getTaskTraceability(taskId, db) {
|
|
|
8655
8811
|
|
|
8656
8812
|
// src/db/task-runs.ts
|
|
8657
8813
|
init_redaction();
|
|
8814
|
+
var LOOP_RUN_TRANSACTION_SCHEMA_VERSION = "todos.loop_run_transaction.v1";
|
|
8658
8815
|
function parseObject(value) {
|
|
8659
8816
|
if (!value)
|
|
8660
8817
|
return {};
|
|
@@ -8677,6 +8834,72 @@ function rowToArtifact(row) {
|
|
|
8677
8834
|
function getRunRow(runId, db) {
|
|
8678
8835
|
return db.query("SELECT * FROM task_runs WHERE id = ?").get(runId);
|
|
8679
8836
|
}
|
|
8837
|
+
function normalizeTransactionKey(input) {
|
|
8838
|
+
const key = (input.key || input.loop_run_id || input.loop_id || "").trim();
|
|
8839
|
+
if (!key)
|
|
8840
|
+
throw new Error("idempotent run transactions require --key, --loop-run-id, or --loop-id");
|
|
8841
|
+
return key.toLowerCase().replace(/[^a-z0-9._:/-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 240);
|
|
8842
|
+
}
|
|
8843
|
+
function loopTransactionMetadata(record) {
|
|
8844
|
+
const value = record.metadata["loop_transaction"];
|
|
8845
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
8846
|
+
}
|
|
8847
|
+
function runKey(record) {
|
|
8848
|
+
const tx = loopTransactionMetadata(record);
|
|
8849
|
+
const key = tx["idempotency_key"] ?? record.metadata["idempotency_key"];
|
|
8850
|
+
return typeof key === "string" ? key : null;
|
|
8851
|
+
}
|
|
8852
|
+
function loopId(record) {
|
|
8853
|
+
const tx = loopTransactionMetadata(record);
|
|
8854
|
+
const value = tx["loop_id"] ?? record.metadata["loop_id"];
|
|
8855
|
+
return typeof value === "string" ? value : null;
|
|
8856
|
+
}
|
|
8857
|
+
function loopRunId(record) {
|
|
8858
|
+
const tx = loopTransactionMetadata(record);
|
|
8859
|
+
const value = tx["loop_run_id"] ?? record.metadata["loop_run_id"];
|
|
8860
|
+
return typeof value === "string" ? value : null;
|
|
8861
|
+
}
|
|
8862
|
+
function getTaskRunTransactionByKey(key, taskId, db) {
|
|
8863
|
+
if (taskId) {
|
|
8864
|
+
return db.query("SELECT * FROM task_run_transactions WHERE task_id = ? AND key = ?").get(taskId, key);
|
|
8865
|
+
}
|
|
8866
|
+
const rows = db.query("SELECT * FROM task_run_transactions WHERE key = ? ORDER BY created_at DESC LIMIT 2").all(key);
|
|
8867
|
+
if (rows.length > 1)
|
|
8868
|
+
throw new Error(`Run transaction key is ambiguous across tasks: ${key}. Pass task_id.`);
|
|
8869
|
+
return rows[0] ?? null;
|
|
8870
|
+
}
|
|
8871
|
+
function summarizeTaskRun(run) {
|
|
8872
|
+
return {
|
|
8873
|
+
id: run.id,
|
|
8874
|
+
task_id: run.task_id,
|
|
8875
|
+
agent_id: run.agent_id,
|
|
8876
|
+
title: run.title,
|
|
8877
|
+
status: run.status,
|
|
8878
|
+
summary: run.summary,
|
|
8879
|
+
idempotency_key: runKey(run),
|
|
8880
|
+
loop_id: loopId(run),
|
|
8881
|
+
loop_run_id: loopRunId(run),
|
|
8882
|
+
metadata_keys: Object.keys(run.metadata).sort(),
|
|
8883
|
+
started_at: run.started_at,
|
|
8884
|
+
completed_at: run.completed_at,
|
|
8885
|
+
updated_at: run.updated_at
|
|
8886
|
+
};
|
|
8887
|
+
}
|
|
8888
|
+
function findTaskRunByTransactionKey(key, taskId, db) {
|
|
8889
|
+
const d = db || getDatabase();
|
|
8890
|
+
const normalized = normalizeTransactionKey({ key });
|
|
8891
|
+
const transaction = getTaskRunTransactionByKey(normalized, taskId, d);
|
|
8892
|
+
if (transaction?.run_id)
|
|
8893
|
+
return getTaskRun(transaction.run_id, d);
|
|
8894
|
+
return null;
|
|
8895
|
+
}
|
|
8896
|
+
function loopRunCommands(run, key) {
|
|
8897
|
+
return [
|
|
8898
|
+
run ? `todos runs show ${run.id.slice(0, 8)}` : "todos runs list",
|
|
8899
|
+
run ? `todos findings list --task ${run.task_id.slice(0, 8)} --json` : "todos findings list --json",
|
|
8900
|
+
`todos runs begin <task-id> --key ${key} --apply --json`
|
|
8901
|
+
];
|
|
8902
|
+
}
|
|
8680
8903
|
function resolveTaskRunId(idOrPrefix, db) {
|
|
8681
8904
|
const d = db || getDatabase();
|
|
8682
8905
|
const rows = d.query("SELECT id FROM task_runs WHERE id = ? OR id LIKE ? ORDER BY created_at DESC LIMIT 2").all(idOrPrefix, `${idOrPrefix}%`);
|
|
@@ -8695,7 +8918,7 @@ function startTaskRun(input, db) {
|
|
|
8695
8918
|
const d = db || getDatabase();
|
|
8696
8919
|
if (!getTask(input.task_id, d))
|
|
8697
8920
|
throw new TaskNotFoundError(input.task_id);
|
|
8698
|
-
const id = uuid();
|
|
8921
|
+
const id = input.id ?? uuid();
|
|
8699
8922
|
const timestamp = input.started_at || now();
|
|
8700
8923
|
if (input.claim && input.agent_id) {
|
|
8701
8924
|
startTask(input.task_id, input.agent_id, d);
|
|
@@ -8733,6 +8956,97 @@ function startTaskRun(input, db) {
|
|
|
8733
8956
|
emitLocalEventHooksQuiet({ type: "run.started", payload: { id: run.id, task_id: run.task_id, agent_id: run.agent_id, title: run.title } });
|
|
8734
8957
|
return run;
|
|
8735
8958
|
}
|
|
8959
|
+
function beginTaskRunTransaction(input, db) {
|
|
8960
|
+
const d = db || getDatabase();
|
|
8961
|
+
if (!getTask(input.task_id, d))
|
|
8962
|
+
throw new TaskNotFoundError(input.task_id);
|
|
8963
|
+
const timestamp = input.started_at || now();
|
|
8964
|
+
const key = normalizeTransactionKey(input);
|
|
8965
|
+
const existing = findTaskRunByTransactionKey(key, input.task_id, d);
|
|
8966
|
+
const dryRun = !input.apply;
|
|
8967
|
+
if (existing) {
|
|
8968
|
+
return {
|
|
8969
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
8970
|
+
local_only: true,
|
|
8971
|
+
dry_run: dryRun,
|
|
8972
|
+
processed_at: timestamp,
|
|
8973
|
+
action: "matched",
|
|
8974
|
+
key,
|
|
8975
|
+
run: summarizeTaskRun(existing),
|
|
8976
|
+
warnings: existing.status === "running" ? [] : [`matched ${existing.status} run`],
|
|
8977
|
+
commands: loopRunCommands(existing, key)
|
|
8978
|
+
};
|
|
8979
|
+
}
|
|
8980
|
+
if (dryRun) {
|
|
8981
|
+
return {
|
|
8982
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
8983
|
+
local_only: true,
|
|
8984
|
+
dry_run: true,
|
|
8985
|
+
processed_at: timestamp,
|
|
8986
|
+
action: "preview",
|
|
8987
|
+
key,
|
|
8988
|
+
run: null,
|
|
8989
|
+
warnings: [],
|
|
8990
|
+
commands: loopRunCommands(null, key)
|
|
8991
|
+
};
|
|
8992
|
+
}
|
|
8993
|
+
const metadata = redactValue({
|
|
8994
|
+
...input.metadata || {},
|
|
8995
|
+
loop_transaction: {
|
|
8996
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
8997
|
+
idempotency_key: key,
|
|
8998
|
+
loop_id: input.loop_id ?? null,
|
|
8999
|
+
loop_run_id: input.loop_run_id ?? null,
|
|
9000
|
+
first_seen_at: timestamp
|
|
9001
|
+
},
|
|
9002
|
+
idempotency_key: key
|
|
9003
|
+
});
|
|
9004
|
+
const created = d.transaction(() => {
|
|
9005
|
+
d.run(`INSERT OR IGNORE INTO task_run_transactions (
|
|
9006
|
+
id, task_id, run_id, key, loop_id, loop_run_id, metadata, created_at, updated_at
|
|
9007
|
+
) VALUES (?, ?, NULL, ?, ?, ?, ?, ?, ?)`, [
|
|
9008
|
+
uuid(),
|
|
9009
|
+
input.task_id,
|
|
9010
|
+
key,
|
|
9011
|
+
input.loop_id ?? null,
|
|
9012
|
+
input.loop_run_id ?? null,
|
|
9013
|
+
JSON.stringify(metadata),
|
|
9014
|
+
timestamp,
|
|
9015
|
+
timestamp
|
|
9016
|
+
]);
|
|
9017
|
+
const transaction = getTaskRunTransactionByKey(key, input.task_id, d);
|
|
9018
|
+
if (!transaction)
|
|
9019
|
+
throw new Error(`Could not create run transaction for key: ${key}`);
|
|
9020
|
+
if (transaction.run_id) {
|
|
9021
|
+
const existingRun = getTaskRun(transaction.run_id, d);
|
|
9022
|
+
if (existingRun)
|
|
9023
|
+
return { run: existingRun, action: "matched" };
|
|
9024
|
+
}
|
|
9025
|
+
const run = startTaskRun({
|
|
9026
|
+
id: uuid(),
|
|
9027
|
+
task_id: input.task_id,
|
|
9028
|
+
agent_id: input.agent_id,
|
|
9029
|
+
title: input.title,
|
|
9030
|
+
summary: input.summary,
|
|
9031
|
+
metadata,
|
|
9032
|
+
claim: input.claim,
|
|
9033
|
+
started_at: timestamp
|
|
9034
|
+
}, d);
|
|
9035
|
+
d.run("UPDATE task_run_transactions SET run_id = ?, loop_id = COALESCE(?, loop_id), loop_run_id = COALESCE(?, loop_run_id), metadata = ?, updated_at = ? WHERE id = ?", [run.id, input.loop_id ?? null, input.loop_run_id ?? null, JSON.stringify(metadata), timestamp, transaction.id]);
|
|
9036
|
+
return { run, action: "created" };
|
|
9037
|
+
})();
|
|
9038
|
+
return {
|
|
9039
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
9040
|
+
local_only: true,
|
|
9041
|
+
dry_run: false,
|
|
9042
|
+
processed_at: timestamp,
|
|
9043
|
+
action: created.action,
|
|
9044
|
+
key,
|
|
9045
|
+
run: summarizeTaskRun(created.run),
|
|
9046
|
+
warnings: [],
|
|
9047
|
+
commands: loopRunCommands(created.run, key)
|
|
9048
|
+
};
|
|
9049
|
+
}
|
|
8736
9050
|
function addTaskRunEvent(input, db) {
|
|
8737
9051
|
const d = db || getDatabase();
|
|
8738
9052
|
const runId = resolveTaskRunId(input.run_id, d);
|
|
@@ -8912,6 +9226,66 @@ function finishTaskRun(input, db) {
|
|
|
8912
9226
|
});
|
|
8913
9227
|
return updated;
|
|
8914
9228
|
}
|
|
9229
|
+
function finishTaskRunTransaction(input, db) {
|
|
9230
|
+
const d = db || getDatabase();
|
|
9231
|
+
const timestamp = input.completed_at || now();
|
|
9232
|
+
const status = input.status || "completed";
|
|
9233
|
+
const key = input.key ? normalizeTransactionKey({ key: input.key }) : "";
|
|
9234
|
+
const run = input.run_id ? getTaskRun(resolveTaskRunId(input.run_id, d), d) : key ? findTaskRunByTransactionKey(key, input.task_id, d) : null;
|
|
9235
|
+
if (!run) {
|
|
9236
|
+
throw new Error(input.run_id ? `Run not found: ${input.run_id}` : "runs finish requires a run id or --key");
|
|
9237
|
+
}
|
|
9238
|
+
if (input.task_id && run.task_id !== input.task_id) {
|
|
9239
|
+
throw new Error(`Run ${run.id} belongs to task ${run.task_id}, not ${input.task_id}`);
|
|
9240
|
+
}
|
|
9241
|
+
const resolvedKey = key || runKey(run) || run.id;
|
|
9242
|
+
const dryRun = input.apply === false;
|
|
9243
|
+
if (run.status !== "running") {
|
|
9244
|
+
const conflict = run.status !== status;
|
|
9245
|
+
return {
|
|
9246
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
9247
|
+
local_only: true,
|
|
9248
|
+
dry_run: dryRun,
|
|
9249
|
+
processed_at: timestamp,
|
|
9250
|
+
action: conflict ? "conflict" : "matched",
|
|
9251
|
+
key: resolvedKey,
|
|
9252
|
+
run: summarizeTaskRun(run),
|
|
9253
|
+
warnings: conflict ? [`run is already ${run.status}; requested ${status}`] : [],
|
|
9254
|
+
commands: loopRunCommands(run, resolvedKey)
|
|
9255
|
+
};
|
|
9256
|
+
}
|
|
9257
|
+
if (dryRun) {
|
|
9258
|
+
return {
|
|
9259
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
9260
|
+
local_only: true,
|
|
9261
|
+
dry_run: true,
|
|
9262
|
+
processed_at: timestamp,
|
|
9263
|
+
action: "preview",
|
|
9264
|
+
key: resolvedKey,
|
|
9265
|
+
run: summarizeTaskRun({ ...run, status, summary: input.summary ?? run.summary, completed_at: timestamp, updated_at: timestamp }),
|
|
9266
|
+
warnings: [],
|
|
9267
|
+
commands: loopRunCommands(run, resolvedKey)
|
|
9268
|
+
};
|
|
9269
|
+
}
|
|
9270
|
+
const finished = finishTaskRun({
|
|
9271
|
+
run_id: run.id,
|
|
9272
|
+
status,
|
|
9273
|
+
summary: input.summary,
|
|
9274
|
+
agent_id: input.agent_id,
|
|
9275
|
+
completed_at: timestamp
|
|
9276
|
+
}, d);
|
|
9277
|
+
return {
|
|
9278
|
+
schema_version: LOOP_RUN_TRANSACTION_SCHEMA_VERSION,
|
|
9279
|
+
local_only: true,
|
|
9280
|
+
dry_run: false,
|
|
9281
|
+
processed_at: timestamp,
|
|
9282
|
+
action: "finished",
|
|
9283
|
+
key: resolvedKey,
|
|
9284
|
+
run: summarizeTaskRun(finished),
|
|
9285
|
+
warnings: [],
|
|
9286
|
+
commands: loopRunCommands(finished, resolvedKey)
|
|
9287
|
+
};
|
|
9288
|
+
}
|
|
8915
9289
|
function listTaskRuns(taskId, db) {
|
|
8916
9290
|
const d = db || getDatabase();
|
|
8917
9291
|
const rows = taskId ? d.query("SELECT * FROM task_runs WHERE task_id = ? ORDER BY started_at DESC, created_at DESC").all(taskId) : d.query("SELECT * FROM task_runs ORDER BY started_at DESC, created_at DESC LIMIT 100").all();
|
package/dist/types/index.d.ts
CHANGED
|
@@ -385,6 +385,14 @@ export interface CreateTaskInput {
|
|
|
385
385
|
assigned_from_project?: string;
|
|
386
386
|
task_type?: string;
|
|
387
387
|
}
|
|
388
|
+
export interface UpsertTaskByFingerprintInput extends CreateTaskInput {
|
|
389
|
+
/** Stable top-level metadata fingerprint used for deterministic dedupe. */
|
|
390
|
+
fingerprint: string;
|
|
391
|
+
}
|
|
392
|
+
export interface UpsertTaskByFingerprintResult {
|
|
393
|
+
task: Task;
|
|
394
|
+
created: boolean;
|
|
395
|
+
}
|
|
388
396
|
export interface UpdateTaskInput {
|
|
389
397
|
title?: string;
|
|
390
398
|
description?: string;
|
|
@@ -392,6 +400,7 @@ export interface UpdateTaskInput {
|
|
|
392
400
|
priority?: TaskPriority;
|
|
393
401
|
project_id?: string | null;
|
|
394
402
|
assigned_to?: string;
|
|
403
|
+
working_dir?: string | null;
|
|
395
404
|
plan_id?: string | null;
|
|
396
405
|
task_list_id?: string;
|
|
397
406
|
cycle_id?: string | null;
|
|
@@ -434,6 +443,8 @@ export interface TaskFilter {
|
|
|
434
443
|
cursor?: string;
|
|
435
444
|
/** When true, include archived tasks. Default: false (archived tasks excluded) */
|
|
436
445
|
include_archived?: boolean;
|
|
446
|
+
/** Exact top-level metadata filters, e.g. { fingerprint: "loop:key" }. */
|
|
447
|
+
metadata?: Record<string, unknown>;
|
|
437
448
|
}
|
|
438
449
|
export interface TaskDependency {
|
|
439
450
|
task_id: string;
|