@hasna/todos 0.11.29 → 0.11.30
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 +25237 -27283
- package/dist/db/checkpoints.d.ts +55 -0
- package/dist/db/checkpoints.d.ts.map +1 -0
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/migrations.d.ts +2 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/schema.d.ts +0 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-crud.d.ts +13 -0
- package/dist/db/task-crud.d.ts.map +1 -0
- package/dist/db/task-graph.d.ts +27 -0
- package/dist/db/task-graph.d.ts.map +1 -0
- package/dist/db/task-lifecycle.d.ts +80 -0
- package/dist/db/task-lifecycle.d.ts.map +1 -0
- package/dist/db/task-relations.d.ts +86 -0
- package/dist/db/task-relations.d.ts.map +1 -0
- package/dist/db/task-status.d.ts +65 -0
- package/dist/db/task-status.d.ts.map +1 -0
- package/dist/db/tasks.d.ts +10 -255
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/db/webhooks.d.ts +6 -1
- package/dist/db/webhooks.d.ts.map +1 -1
- package/dist/index.js +2381 -1788
- package/dist/lib/github.d.ts +1 -1
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/north-star.d.ts +33 -0
- package/dist/lib/north-star.d.ts.map +1 -0
- package/dist/lib/task-runner.d.ts +101 -0
- package/dist/lib/task-runner.d.ts.map +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +21955 -25937
- package/dist/mcp/tools/cloud.d.ts.map +1 -1
- package/dist/mcp/tools/code-tools.d.ts +15 -0
- package/dist/mcp/tools/code-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-adv-tools.d.ts +20 -0
- package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-auto-tools.d.ts +20 -0
- package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-crud.d.ts +20 -0
- package/dist/mcp/tools/task-crud.d.ts.map +1 -0
- package/dist/mcp/tools/task-meta-tools.d.ts +12 -0
- package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-project-tools.d.ts +20 -0
- package/dist/mcp/tools/task-project-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-rel-tools.d.ts +19 -0
- package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-resources.d.ts +13 -0
- package/dist/mcp/tools/task-resources.d.ts.map +1 -0
- package/dist/mcp/tools/task-workflow-tools.d.ts +20 -0
- package/dist/mcp/tools/task-workflow-tools.d.ts.map +1 -0
- package/dist/sdk/client.d.ts +361 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/index.d.ts +14 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/types.d.ts +167 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk.d.ts +15 -182
- package/dist/sdk.d.ts.map +1 -1
- package/dist/server/index.js +1961 -2803
- package/dist/server/routes.d.ts +85 -0
- package/dist/server/routes.d.ts.map +1 -0
- package/dist/server/serve.d.ts +29 -0
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/types/index.d.ts +77 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export interface Checkpoint {
|
|
3
|
+
id: string;
|
|
4
|
+
task_id: string;
|
|
5
|
+
agent_id: string | null;
|
|
6
|
+
step: string;
|
|
7
|
+
status: "pending" | "running" | "completed" | "failed" | "skipped";
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
error: string | null;
|
|
10
|
+
attempt: number;
|
|
11
|
+
max_attempts: number;
|
|
12
|
+
started_at: string | null;
|
|
13
|
+
completed_at: string | null;
|
|
14
|
+
created_at: string;
|
|
15
|
+
updated_at: string;
|
|
16
|
+
}
|
|
17
|
+
export interface Heartbeat {
|
|
18
|
+
id: string;
|
|
19
|
+
task_id: string;
|
|
20
|
+
agent_id: string | null;
|
|
21
|
+
step: string | null;
|
|
22
|
+
message: string | null;
|
|
23
|
+
progress: number | null;
|
|
24
|
+
meta: Record<string, unknown>;
|
|
25
|
+
created_at: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function upsertCheckpoint(task_id: string, step: string, updates: {
|
|
28
|
+
agent_id?: string;
|
|
29
|
+
status?: Checkpoint["status"];
|
|
30
|
+
data?: Record<string, unknown>;
|
|
31
|
+
error?: string | null;
|
|
32
|
+
attempt?: number;
|
|
33
|
+
max_attempts?: number;
|
|
34
|
+
started_at?: string | null;
|
|
35
|
+
completed_at?: string | null;
|
|
36
|
+
}, db?: Database): Checkpoint;
|
|
37
|
+
export declare function getCheckpoint(taskId: string, step: string, db?: Database): Checkpoint | null;
|
|
38
|
+
export declare function getTaskCheckpoints(taskId: string, db?: Database): Checkpoint[];
|
|
39
|
+
export declare function getTaskHeartbeats(taskId: string, limit?: number, db?: Database): Heartbeat[];
|
|
40
|
+
export declare function emitHeartbeat(task_id: string, opts?: {
|
|
41
|
+
agent_id?: string;
|
|
42
|
+
step?: string;
|
|
43
|
+
message?: string;
|
|
44
|
+
progress?: number;
|
|
45
|
+
meta?: Record<string, unknown>;
|
|
46
|
+
}, db?: Database): Heartbeat;
|
|
47
|
+
export declare function getLastHeartbeat(taskId: string, db?: Database): Heartbeat | null;
|
|
48
|
+
export declare function getTaskProgress(taskId: string, db?: Database): {
|
|
49
|
+
total_steps: number;
|
|
50
|
+
completed_steps: number;
|
|
51
|
+
failed_steps: number;
|
|
52
|
+
pending_steps: number;
|
|
53
|
+
last_heartbeat?: Heartbeat | null;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=checkpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../src/db/checkpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AA0EtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAmBrD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAa,GAAG,MAAM,CAG3D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGpD;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AA0EtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAmBrD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAa,GAAG,MAAM,CAG3D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGpD;AAID,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyC9F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UAmzBtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,EAyrBjC,CAAC"}
|
package/dist/db/schema.d.ts
CHANGED
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8BhD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAwZ/C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA4BnD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { CreateTaskInput, Task, TaskFilter, TaskRow, TaskWithRelations, UpdateTaskInput } from "../types/index.js";
|
|
3
|
+
export declare function rowToTask(row: TaskRow): Task;
|
|
4
|
+
export declare function insertTaskTags(taskId: string, tags: string[], db: Database): void;
|
|
5
|
+
export declare function replaceTaskTags(taskId: string, tags: string[], db: Database): void;
|
|
6
|
+
export declare function createTask(input: CreateTaskInput, db?: Database): Task;
|
|
7
|
+
export declare function getTask(id: string, db?: Database): Task | null;
|
|
8
|
+
export declare function getTaskWithRelations(id: string, db?: Database): TaskWithRelations | null;
|
|
9
|
+
export declare function listTasks(filter?: TaskFilter, db?: Database): Task[];
|
|
10
|
+
export declare function countTasks(filter?: Omit<TaskFilter, 'limit' | 'offset'>, db?: Database): number;
|
|
11
|
+
export declare function updateTask(id: string, input: UpdateTaskInput, db?: Database): Task;
|
|
12
|
+
export declare function deleteTask(id: string, db?: Database): boolean;
|
|
13
|
+
//# sourceMappingURL=task-crud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../src/db/task-crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAY3B,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAS5C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAMjF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGlF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAqEtE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAK9D;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,EAAE,CAAC,EAAE,QAAQ,GACZ,iBAAiB,GAAG,IAAI,CAqD1B;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,UAAe,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,CAsIxE;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAqFnG;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAqIN;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAI7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { CreateTaskInput, Task, TaskDependency } from "../types/index.js";
|
|
3
|
+
export declare function addDependency(taskId: string, dependsOn: string, db?: Database): void;
|
|
4
|
+
export declare function removeDependency(taskId: string, dependsOn: string, db?: Database): boolean;
|
|
5
|
+
export declare function getTaskDependencies(taskId: string, db?: Database): TaskDependency[];
|
|
6
|
+
export declare function getTaskDependents(taskId: string, db?: Database): TaskDependency[];
|
|
7
|
+
export declare function cloneTask(taskId: string, overrides?: Partial<CreateTaskInput>, db?: Database): Task;
|
|
8
|
+
export interface TaskGraphNode {
|
|
9
|
+
id: string;
|
|
10
|
+
short_id: string | null;
|
|
11
|
+
title: string;
|
|
12
|
+
status: string;
|
|
13
|
+
priority: string;
|
|
14
|
+
is_blocked: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface TaskGraph {
|
|
17
|
+
task: TaskGraphNode;
|
|
18
|
+
depends_on: TaskGraph[];
|
|
19
|
+
blocks: TaskGraph[];
|
|
20
|
+
}
|
|
21
|
+
export declare function getTaskGraph(taskId: string, direction?: "up" | "down" | "both", db?: Database): TaskGraph;
|
|
22
|
+
export declare function moveTask(taskId: string, target: {
|
|
23
|
+
task_list_id?: string | null;
|
|
24
|
+
project_id?: string | null;
|
|
25
|
+
plan_id?: string | null;
|
|
26
|
+
}, db?: Database): Task;
|
|
27
|
+
//# sourceMappingURL=task-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-graph.d.ts","sourceRoot":"","sources":["../../src/db/task-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACf,MAAM,mBAAmB,CAAC;AAU3B,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAgBN;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAOT;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,EAAE,QAAQ,GACZ,cAAc,EAAE,CAKlB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,EAAE,QAAQ,GACZ,cAAc,EAAE,CAKlB;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACpC,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAuBN;AAID,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,IAAI,GAAG,MAAM,GAAG,MAAe,EAC1C,EAAE,CAAC,EAAE,QAAQ,GACZ,SAAS,CAyCX;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC7F,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAyBN"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { LockResult, Task } from "../types/index.js";
|
|
3
|
+
export declare function getBlockingDeps(id: string, db?: Database): Task[];
|
|
4
|
+
export declare function startTask(id: string, agentId: string, db?: Database): Task;
|
|
5
|
+
export declare function completeTask(id: string, agentId?: string, db?: Database, options?: {
|
|
6
|
+
files_changed?: string[];
|
|
7
|
+
test_results?: string;
|
|
8
|
+
commit_hash?: string;
|
|
9
|
+
notes?: string;
|
|
10
|
+
attachment_ids?: string[];
|
|
11
|
+
skip_recurrence?: boolean;
|
|
12
|
+
confidence?: number;
|
|
13
|
+
}): Task;
|
|
14
|
+
export declare function lockTask(id: string, agentId: string, db?: Database): LockResult;
|
|
15
|
+
export declare function unlockTask(id: string, agentId?: string, db?: Database): boolean;
|
|
16
|
+
export declare function claimNextTask(agentId: string, filters?: {
|
|
17
|
+
project_id?: string;
|
|
18
|
+
task_list_id?: string;
|
|
19
|
+
plan_id?: string;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
}, db?: Database): Task | null;
|
|
22
|
+
export declare function getNextTask(agentId?: string, filters?: {
|
|
23
|
+
project_id?: string;
|
|
24
|
+
task_list_id?: string;
|
|
25
|
+
plan_id?: string;
|
|
26
|
+
tags?: string[];
|
|
27
|
+
}, db?: Database): Task | null;
|
|
28
|
+
export interface ActiveWorkItem {
|
|
29
|
+
id: string;
|
|
30
|
+
short_id: string | null;
|
|
31
|
+
title: string;
|
|
32
|
+
priority: string;
|
|
33
|
+
assigned_to: string | null;
|
|
34
|
+
locked_by: string | null;
|
|
35
|
+
locked_at: string | null;
|
|
36
|
+
updated_at: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function getActiveWork(filters?: {
|
|
39
|
+
project_id?: string;
|
|
40
|
+
task_list_id?: string;
|
|
41
|
+
}, db?: Database): ActiveWorkItem[];
|
|
42
|
+
export declare function getTasksChangedSince(since: string, filters?: {
|
|
43
|
+
project_id?: string;
|
|
44
|
+
task_list_id?: string;
|
|
45
|
+
}, db?: Database): Task[];
|
|
46
|
+
export declare function failTask(id: string, agentId?: string, reason?: string, options?: {
|
|
47
|
+
retry?: boolean;
|
|
48
|
+
retry_after?: string;
|
|
49
|
+
error_code?: string;
|
|
50
|
+
}, db?: Database): {
|
|
51
|
+
task: Task;
|
|
52
|
+
retryTask?: Task;
|
|
53
|
+
};
|
|
54
|
+
export declare function getStaleTasks(staleMinutes?: number, filters?: {
|
|
55
|
+
project_id?: string;
|
|
56
|
+
task_list_id?: string;
|
|
57
|
+
}, db?: Database): Task[];
|
|
58
|
+
/**
|
|
59
|
+
* Work-stealing: find the highest-priority stale in_progress task and reassign it to the given agent.
|
|
60
|
+
* A task is stealable if it's in_progress and its lock/update is older than staleMinutes.
|
|
61
|
+
*/
|
|
62
|
+
export declare function stealTask(agentId: string, opts?: {
|
|
63
|
+
stale_minutes?: number;
|
|
64
|
+
project_id?: string;
|
|
65
|
+
task_list_id?: string;
|
|
66
|
+
}, db?: Database): Task | null;
|
|
67
|
+
/**
|
|
68
|
+
* Enhanced claim: try pending queue first, then steal from stale agents if nothing pending.
|
|
69
|
+
*/
|
|
70
|
+
export declare function claimOrSteal(agentId: string, filters?: {
|
|
71
|
+
project_id?: string;
|
|
72
|
+
task_list_id?: string;
|
|
73
|
+
plan_id?: string;
|
|
74
|
+
tags?: string[];
|
|
75
|
+
stale_minutes?: number;
|
|
76
|
+
}, db?: Database): {
|
|
77
|
+
task: Task;
|
|
78
|
+
stolen: boolean;
|
|
79
|
+
} | null;
|
|
80
|
+
//# sourceMappingURL=task-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-lifecycle.d.ts","sourceRoot":"","sources":["../../src/db/task-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Task, TaskStatus, TaskTimeLog, TaskWatcher } from "../types/index.js";
|
|
3
|
+
export interface BulkCreateTaskInput {
|
|
4
|
+
temp_id?: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
priority?: "low" | "medium" | "high" | "critical";
|
|
8
|
+
status?: "pending" | "in_progress" | "completed" | "failed" | "cancelled";
|
|
9
|
+
project_id?: string;
|
|
10
|
+
parent_id?: string;
|
|
11
|
+
plan_id?: string;
|
|
12
|
+
task_list_id?: string;
|
|
13
|
+
agent_id?: string;
|
|
14
|
+
assigned_to?: string;
|
|
15
|
+
tags?: string[];
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
estimated_minutes?: number;
|
|
18
|
+
depends_on_temp_ids?: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function bulkCreateTasks(inputs: BulkCreateTaskInput[], db?: Database): {
|
|
21
|
+
created: {
|
|
22
|
+
temp_id: string | null;
|
|
23
|
+
id: string;
|
|
24
|
+
short_id: string | null;
|
|
25
|
+
title: string;
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
export declare function bulkUpdateTasks(taskIds: string[], updates: {
|
|
29
|
+
status?: Task["status"];
|
|
30
|
+
priority?: Task["priority"];
|
|
31
|
+
assigned_to?: string;
|
|
32
|
+
tags?: string[];
|
|
33
|
+
}, db?: Database): {
|
|
34
|
+
updated: number;
|
|
35
|
+
failed: {
|
|
36
|
+
id: string;
|
|
37
|
+
error: string;
|
|
38
|
+
}[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Archive tasks matching the criteria. Archives completed/failed/cancelled tasks
|
|
42
|
+
* older than `olderThanDays` days. Returns count of archived tasks.
|
|
43
|
+
*/
|
|
44
|
+
export declare function archiveTasks(options: {
|
|
45
|
+
project_id?: string;
|
|
46
|
+
task_list_id?: string;
|
|
47
|
+
older_than_days?: number;
|
|
48
|
+
status?: TaskStatus[];
|
|
49
|
+
}, db?: Database): {
|
|
50
|
+
archived: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Unarchive (restore) a specific task.
|
|
54
|
+
*/
|
|
55
|
+
export declare function unarchiveTask(id: string, db?: Database): Task | null;
|
|
56
|
+
export declare function getOverdueTasks(projectId?: string, db?: Database): Task[];
|
|
57
|
+
export interface LogTimeInput {
|
|
58
|
+
task_id: string;
|
|
59
|
+
agent_id?: string;
|
|
60
|
+
minutes: number;
|
|
61
|
+
started_at?: string;
|
|
62
|
+
ended_at?: string;
|
|
63
|
+
notes?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function logTime(input: LogTimeInput, db?: Database): TaskTimeLog;
|
|
66
|
+
export declare function getTimeLogs(taskId: string, db?: Database): TaskTimeLog[];
|
|
67
|
+
export declare function getTimeReport(opts?: {
|
|
68
|
+
project_id?: string;
|
|
69
|
+
agent_id?: string;
|
|
70
|
+
since?: string;
|
|
71
|
+
}, db?: Database): {
|
|
72
|
+
task_id: string;
|
|
73
|
+
title: string;
|
|
74
|
+
estimated_minutes: number | null;
|
|
75
|
+
actual_minutes: number | null;
|
|
76
|
+
time_logs: TaskTimeLog[];
|
|
77
|
+
}[];
|
|
78
|
+
export declare function watchTask(taskId: string, agentId: string, db?: Database): TaskWatcher;
|
|
79
|
+
export declare function unwatchTask(taskId: string, agentId: string, db?: Database): boolean;
|
|
80
|
+
export declare function getTaskWatchers(taskId: string, db?: Database): TaskWatcher[];
|
|
81
|
+
export declare function notifyWatchers(taskId: string, event: string, data: Record<string, unknown>, db?: Database): void;
|
|
82
|
+
/**
|
|
83
|
+
* Log cost (tokens + USD) to a task. Accumulates — does not replace.
|
|
84
|
+
*/
|
|
85
|
+
export declare function logCost(taskId: string, tokens: number, usd: number, db?: Database): void;
|
|
86
|
+
//# sourceMappingURL=task-relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-relations.d.ts","sourceRoot":"","sources":["../../src/db/task-relations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Task, TaskPriority, TaskStatus } from "../types/index.js";
|
|
3
|
+
export interface StatusSummary {
|
|
4
|
+
pending: number;
|
|
5
|
+
in_progress: number;
|
|
6
|
+
completed: number;
|
|
7
|
+
total: number;
|
|
8
|
+
active_work: import("./task-lifecycle.js").ActiveWorkItem[];
|
|
9
|
+
next_task: Task | null;
|
|
10
|
+
stale_count: number;
|
|
11
|
+
overdue_recurring: number;
|
|
12
|
+
blocked_tasks?: {
|
|
13
|
+
id: string;
|
|
14
|
+
short_id: string | null;
|
|
15
|
+
title: string;
|
|
16
|
+
blocked_by: {
|
|
17
|
+
id: string;
|
|
18
|
+
short_id: string | null;
|
|
19
|
+
title: string;
|
|
20
|
+
status: string;
|
|
21
|
+
}[];
|
|
22
|
+
}[];
|
|
23
|
+
}
|
|
24
|
+
export declare function getStatus(filters?: {
|
|
25
|
+
project_id?: string;
|
|
26
|
+
task_list_id?: string;
|
|
27
|
+
}, agentId?: string, options?: {
|
|
28
|
+
explain_blocked?: boolean;
|
|
29
|
+
}, db?: Database): StatusSummary;
|
|
30
|
+
export interface DecomposeSubtaskInput {
|
|
31
|
+
title: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
priority?: Task["priority"];
|
|
34
|
+
assigned_to?: string;
|
|
35
|
+
estimated_minutes?: number;
|
|
36
|
+
tags?: string[];
|
|
37
|
+
}
|
|
38
|
+
export declare function decomposeTasks(parentId: string, subtasks: DecomposeSubtaskInput[], options?: {
|
|
39
|
+
depends_on_prev?: boolean;
|
|
40
|
+
}, db?: Database): {
|
|
41
|
+
parent: Task;
|
|
42
|
+
subtasks: Task[];
|
|
43
|
+
};
|
|
44
|
+
export declare function setTaskStatus(id: string, status: TaskStatus, _agentId?: string, db?: Database): Task;
|
|
45
|
+
export declare function setTaskPriority(id: string, priority: TaskPriority, _agentId?: string, db?: Database): Task;
|
|
46
|
+
export declare function redistributeStaleTasks(agentId: string, options?: {
|
|
47
|
+
max_age_minutes?: number;
|
|
48
|
+
project_id?: string;
|
|
49
|
+
limit?: number;
|
|
50
|
+
}, db?: Database): {
|
|
51
|
+
released: Task[];
|
|
52
|
+
claimed: Task | null;
|
|
53
|
+
};
|
|
54
|
+
export declare function getTaskStats(filters?: {
|
|
55
|
+
project_id?: string;
|
|
56
|
+
task_list_id?: string;
|
|
57
|
+
agent_id?: string;
|
|
58
|
+
}, db?: Database): {
|
|
59
|
+
total: number;
|
|
60
|
+
by_status: Record<string, number>;
|
|
61
|
+
by_priority: Record<string, number>;
|
|
62
|
+
completion_rate: number;
|
|
63
|
+
by_agent: Record<string, number>;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=task-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-status.d.ts","sourceRoot":"","sources":["../../src/db/task-status.ts"],"names":[],"mappings":"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"}
|