@hasna/todos 0.9.74 → 0.9.76
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 +1021 -2
- package/dist/db/checklists.d.ts +13 -0
- package/dist/db/checklists.d.ts.map +1 -0
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/handoffs.d.ts +25 -0
- package/dist/db/handoffs.d.ts.map +1 -0
- package/dist/db/projects.d.ts +5 -1
- package/dist/db/projects.d.ts.map +1 -1
- package/dist/db/tasks.d.ts +1 -0
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -1
- package/dist/mcp/index.js +513 -1
- package/dist/server/index.js +146 -17
- package/dist/types/index.d.ts +55 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { ChecklistItem, CreateChecklistItemInput } from "../types/index.js";
|
|
3
|
+
export declare function getChecklist(taskId: string, db?: Database): ChecklistItem[];
|
|
4
|
+
export declare function addChecklistItem(input: CreateChecklistItemInput, db?: Database): ChecklistItem;
|
|
5
|
+
export declare function checkChecklistItem(id: string, checked: boolean, db?: Database): ChecklistItem | null;
|
|
6
|
+
export declare function updateChecklistItemText(id: string, text: string, db?: Database): ChecklistItem | null;
|
|
7
|
+
export declare function removeChecklistItem(id: string, db?: Database): boolean;
|
|
8
|
+
export declare function clearChecklist(taskId: string, db?: Database): number;
|
|
9
|
+
export declare function getChecklistStats(taskId: string, db?: Database): {
|
|
10
|
+
total: number;
|
|
11
|
+
checked: number;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=checklists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checklists.d.ts","sourceRoot":"","sources":["../../src/db/checklists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAoB,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAOnG,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAM3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,CAoB9F;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CASpG;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CASrG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAItE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAIpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMnG"}
|
|
@@ -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;AAItC,eAAO,MAAM,mBAAmB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAmbtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAkBrD;AAgPD,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;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0B9F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export interface Handoff {
|
|
3
|
+
id: string;
|
|
4
|
+
agent_id: string | null;
|
|
5
|
+
project_id: string | null;
|
|
6
|
+
summary: string;
|
|
7
|
+
completed: string[] | null;
|
|
8
|
+
in_progress: string[] | null;
|
|
9
|
+
blockers: string[] | null;
|
|
10
|
+
next_steps: string[] | null;
|
|
11
|
+
created_at: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CreateHandoffInput {
|
|
14
|
+
agent_id?: string;
|
|
15
|
+
project_id?: string;
|
|
16
|
+
summary: string;
|
|
17
|
+
completed?: string[];
|
|
18
|
+
in_progress?: string[];
|
|
19
|
+
blockers?: string[];
|
|
20
|
+
next_steps?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function createHandoff(input: CreateHandoffInput, db?: Database): Handoff;
|
|
23
|
+
export declare function listHandoffs(projectId?: string, limit?: number, db?: Database): Handoff[];
|
|
24
|
+
export declare function getLatestHandoff(agentId?: string, projectId?: string, db?: Database): Handoff | null;
|
|
25
|
+
//# sourceMappingURL=handoffs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoffs.d.ts","sourceRoot":"","sources":["../../src/db/handoffs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CA0B/E;AAYD,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAMrF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CASpG"}
|
package/dist/db/projects.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { CreateProjectInput, Project } from "../types/index.js";
|
|
2
|
+
import type { CreateProjectInput, CreateProjectSourceInput, Project, ProjectSource } from "../types/index.js";
|
|
3
3
|
export declare function slugify(name: string): string;
|
|
4
4
|
export declare function createProject(input: CreateProjectInput, db?: Database): Project;
|
|
5
5
|
export declare function getProject(id: string, db?: Database): Project | null;
|
|
@@ -7,6 +7,10 @@ export declare function getProjectByPath(path: string, db?: Database): Project |
|
|
|
7
7
|
export declare function listProjects(db?: Database): Project[];
|
|
8
8
|
export declare function updateProject(id: string, input: Partial<Pick<Project, "name" | "description" | "task_list_id">>, db?: Database): Project;
|
|
9
9
|
export declare function deleteProject(id: string, db?: Database): boolean;
|
|
10
|
+
export declare function addProjectSource(input: CreateProjectSourceInput, db?: Database): ProjectSource;
|
|
11
|
+
export declare function removeProjectSource(id: string, db?: Database): boolean;
|
|
12
|
+
export declare function listProjectSources(projectId: string, db?: Database): ProjectSource[];
|
|
13
|
+
export declare function getProjectWithSources(id: string, db?: Database): Project | null;
|
|
10
14
|
export declare function nextTaskShortId(projectId: string, db?: Database): string | null;
|
|
11
15
|
export declare function ensureProject(name: string, path: string, db?: Database): Project;
|
|
12
16
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAIhI,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAyBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EACzB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAcT;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAM5E;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAKrD;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC,CAAC,EACtE,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAyBT;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,CAW9F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAItE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAIpF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAM/E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAS/E;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAaT"}
|
package/dist/db/tasks.d.ts
CHANGED
package/dist/db/tasks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,IAAI,EACJ,cAAc,EACd,UAAU,EACV,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { TodosClient, createClient } from "./sdk.js";
|
|
2
2
|
export type { TodosClientOptions } from "./sdk.js";
|
|
3
3
|
export { getDatabase, closeDatabase, resetDatabase, resolvePartialId, now, uuid } from "./db/database.js";
|
|
4
|
-
export { createTask, getTask, getTaskWithRelations, listTasks, countTasks, updateTask, deleteTask, startTask, completeTask, lockTask, unlockTask, addDependency, removeDependency, getTaskDependencies, getTaskDependents, getBlockingDeps, bulkUpdateTasks, bulkCreateTasks, cloneTask, getTaskStats, getTaskGraph, moveTask, getNextTask, claimNextTask, getActiveWork, failTask, getTasksChangedSince, getStaleTasks, getStatus, decomposeTasks, setTaskStatus, setTaskPriority, redistributeStaleTasks, } from "./db/tasks.js";
|
|
4
|
+
export { createTask, getTask, getTaskWithRelations, listTasks, countTasks, updateTask, deleteTask, startTask, completeTask, lockTask, unlockTask, addDependency, removeDependency, getTaskDependencies, getTaskDependents, getBlockingDeps, bulkUpdateTasks, bulkCreateTasks, cloneTask, getTaskStats, getTaskGraph, moveTask, getNextTask, claimNextTask, getActiveWork, failTask, getTasksChangedSince, getStaleTasks, getStatus, decomposeTasks, setTaskStatus, setTaskPriority, redistributeStaleTasks, getOverdueTasks, } from "./db/tasks.js";
|
|
5
5
|
export type { TaskGraphNode, TaskGraph, BulkCreateTaskInput, ActiveWorkItem, StatusSummary, DecomposeSubtaskInput } from "./db/tasks.js";
|
|
6
|
-
export { createProject, getProject, getProjectByPath, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, } from "./db/projects.js";
|
|
6
|
+
export { createProject, getProject, getProjectByPath, getProjectWithSources, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, addProjectSource, removeProjectSource, listProjectSources, } from "./db/projects.js";
|
|
7
7
|
export { createPlan, getPlan, listPlans, updatePlan, deletePlan, } from "./db/plans.js";
|
|
8
8
|
export { addComment, getComment, listComments, deleteComment, logProgress, } from "./db/comments.js";
|
|
9
9
|
export { registerAgent, isAgentConflict, getAgent, getAgentByName, listAgents, updateAgent, updateAgentActivity, deleteAgent, getDirectReports, getOrgChart, } from "./db/agents.js";
|
|
@@ -13,6 +13,9 @@ export { createSession, getSession, listSessions, updateSessionActivity, deleteS
|
|
|
13
13
|
export { logTaskChange, getTaskHistory, getRecentActivity } from "./db/audit.js";
|
|
14
14
|
export { createWebhook, getWebhook, listWebhooks, deleteWebhook, dispatchWebhook } from "./db/webhooks.js";
|
|
15
15
|
export { createTemplate, getTemplate, listTemplates, deleteTemplate, taskFromTemplate } from "./db/templates.js";
|
|
16
|
+
export { getChecklist, addChecklistItem, checkChecklistItem, updateChecklistItemText, removeChecklistItem, clearChecklist, getChecklistStats, } from "./db/checklists.js";
|
|
17
|
+
export { createHandoff, listHandoffs, getLatestHandoff } from "./db/handoffs.js";
|
|
18
|
+
export type { Handoff, CreateHandoffInput } from "./db/handoffs.js";
|
|
16
19
|
export { createOrg, getOrg, getOrgByName, listOrgs, updateOrg, deleteOrg } from "./db/orgs.js";
|
|
17
20
|
export { searchTasks } from "./lib/search.js";
|
|
18
21
|
export type { SearchOptions } from "./lib/search.js";
|
|
@@ -23,6 +26,6 @@ export type { TodosConfig, AgentConfig, CompletionGuardConfig } from "./lib/conf
|
|
|
23
26
|
export { checkCompletionGuard } from "./lib/completion-guard.js";
|
|
24
27
|
export { parseRecurrenceRule, isValidRecurrenceRule, nextOccurrence } from "./lib/recurrence.js";
|
|
25
28
|
export type { ParsedRule } from "./lib/recurrence.js";
|
|
26
|
-
export type { Task, TaskWithRelations, CreateTaskInput, UpdateTaskInput, TaskFilter, TaskStatus, TaskPriority, TaskDependency, TaskComment, CreateCommentInput, Project, CreateProjectInput, Plan, CreatePlanInput, UpdatePlanInput, PlanStatus, Session, CreateSessionInput, Agent, AgentRow, RegisterAgentInput, TaskList, TaskListRow, CreateTaskListInput, UpdateTaskListInput, LockResult, TaskRow, SessionRow, TaskHistory, Webhook, CreateWebhookInput, TaskTemplate, CreateTemplateInput, Org, CreateOrgInput, } from "./types/index.js";
|
|
29
|
+
export type { Task, TaskWithRelations, CreateTaskInput, UpdateTaskInput, TaskFilter, TaskStatus, TaskPriority, TaskDependency, TaskComment, CreateCommentInput, Project, CreateProjectInput, ProjectSource, ProjectSourceRow, CreateProjectSourceInput, ChecklistItem, ChecklistItemRow, CreateChecklistItemInput, Plan, CreatePlanInput, UpdatePlanInput, PlanStatus, Session, CreateSessionInput, Agent, AgentRow, RegisterAgentInput, TaskList, TaskListRow, CreateTaskListInput, UpdateTaskListInput, LockResult, TaskRow, SessionRow, TaskHistory, Webhook, CreateWebhookInput, TaskTemplate, CreateTemplateInput, Org, CreateOrgInput, } from "./types/index.js";
|
|
27
30
|
export { TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, ProjectNotFoundError, PlanNotFoundError, LockError, DependencyCycleError, AgentNotFoundError, TaskListNotFoundError, CompletionGuardError, } from "./types/index.js";
|
|
28
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG1G,OAAO,EACL,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -576,6 +576,49 @@ var MIGRATIONS = [
|
|
|
576
576
|
ALTER TABLE tasks ADD COLUMN reason TEXT;
|
|
577
577
|
ALTER TABLE tasks ADD COLUMN spawned_from_session TEXT;
|
|
578
578
|
INSERT OR IGNORE INTO _migrations (id) VALUES (19);
|
|
579
|
+
`,
|
|
580
|
+
`
|
|
581
|
+
CREATE TABLE IF NOT EXISTS handoffs (
|
|
582
|
+
id TEXT PRIMARY KEY,
|
|
583
|
+
agent_id TEXT,
|
|
584
|
+
project_id TEXT REFERENCES projects(id) ON DELETE SET NULL,
|
|
585
|
+
summary TEXT NOT NULL,
|
|
586
|
+
completed TEXT,
|
|
587
|
+
in_progress TEXT,
|
|
588
|
+
blockers TEXT,
|
|
589
|
+
next_steps TEXT,
|
|
590
|
+
created_at TEXT NOT NULL
|
|
591
|
+
);
|
|
592
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (20);
|
|
593
|
+
`,
|
|
594
|
+
`
|
|
595
|
+
CREATE TABLE IF NOT EXISTS task_checklists (
|
|
596
|
+
id TEXT PRIMARY KEY,
|
|
597
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
598
|
+
position INTEGER NOT NULL DEFAULT 0,
|
|
599
|
+
text TEXT NOT NULL,
|
|
600
|
+
checked INTEGER NOT NULL DEFAULT 0,
|
|
601
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
602
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
603
|
+
);
|
|
604
|
+
CREATE INDEX IF NOT EXISTS idx_task_checklists_task ON task_checklists(task_id);
|
|
605
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (21);
|
|
606
|
+
`,
|
|
607
|
+
`
|
|
608
|
+
CREATE TABLE IF NOT EXISTS project_sources (
|
|
609
|
+
id TEXT PRIMARY KEY,
|
|
610
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
611
|
+
type TEXT NOT NULL,
|
|
612
|
+
name TEXT NOT NULL,
|
|
613
|
+
uri TEXT NOT NULL,
|
|
614
|
+
description TEXT,
|
|
615
|
+
metadata TEXT DEFAULT '{}',
|
|
616
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
617
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
618
|
+
);
|
|
619
|
+
CREATE INDEX IF NOT EXISTS idx_project_sources_project ON project_sources(project_id);
|
|
620
|
+
CREATE INDEX IF NOT EXISTS idx_project_sources_type ON project_sources(type);
|
|
621
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (22);
|
|
579
622
|
`
|
|
580
623
|
];
|
|
581
624
|
var _db = null;
|
|
@@ -691,6 +734,28 @@ function ensureSchema(db) {
|
|
|
691
734
|
metadata TEXT DEFAULT '{}',
|
|
692
735
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
693
736
|
)`);
|
|
737
|
+
ensureTable("task_checklists", `
|
|
738
|
+
CREATE TABLE task_checklists (
|
|
739
|
+
id TEXT PRIMARY KEY,
|
|
740
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
741
|
+
position INTEGER NOT NULL DEFAULT 0,
|
|
742
|
+
text TEXT NOT NULL,
|
|
743
|
+
checked INTEGER NOT NULL DEFAULT 0,
|
|
744
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
745
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
746
|
+
)`);
|
|
747
|
+
ensureTable("project_sources", `
|
|
748
|
+
CREATE TABLE project_sources (
|
|
749
|
+
id TEXT PRIMARY KEY,
|
|
750
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
751
|
+
type TEXT NOT NULL,
|
|
752
|
+
name TEXT NOT NULL,
|
|
753
|
+
uri TEXT NOT NULL,
|
|
754
|
+
description TEXT,
|
|
755
|
+
metadata TEXT DEFAULT '{}',
|
|
756
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
757
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
758
|
+
)`);
|
|
694
759
|
ensureColumn("projects", "task_list_id", "TEXT");
|
|
695
760
|
ensureColumn("projects", "task_prefix", "TEXT");
|
|
696
761
|
ensureColumn("projects", "task_counter", "INTEGER NOT NULL DEFAULT 0");
|
|
@@ -735,6 +800,9 @@ function ensureSchema(db) {
|
|
|
735
800
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_history_agent ON task_history(agent_id)");
|
|
736
801
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_parent ON tasks(recurrence_parent_id)");
|
|
737
802
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_recurrence_rule ON tasks(recurrence_rule) WHERE recurrence_rule IS NOT NULL");
|
|
803
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_checklists_task ON task_checklists(task_id)");
|
|
804
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_project_sources_project ON project_sources(project_id)");
|
|
805
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_project_sources_type ON project_sources(type)");
|
|
738
806
|
}
|
|
739
807
|
function backfillTaskTags(db) {
|
|
740
808
|
try {
|
|
@@ -1016,6 +1084,48 @@ function deleteProject(id, db) {
|
|
|
1016
1084
|
const result = d.run("DELETE FROM projects WHERE id = ?", [id]);
|
|
1017
1085
|
return result.changes > 0;
|
|
1018
1086
|
}
|
|
1087
|
+
function rowToSource(row) {
|
|
1088
|
+
return {
|
|
1089
|
+
...row,
|
|
1090
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : {}
|
|
1091
|
+
};
|
|
1092
|
+
}
|
|
1093
|
+
function addProjectSource(input, db) {
|
|
1094
|
+
const d = db || getDatabase();
|
|
1095
|
+
const id = uuid();
|
|
1096
|
+
const timestamp = now();
|
|
1097
|
+
d.run(`INSERT INTO project_sources (id, project_id, type, name, uri, description, metadata, created_at, updated_at)
|
|
1098
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
1099
|
+
id,
|
|
1100
|
+
input.project_id,
|
|
1101
|
+
input.type,
|
|
1102
|
+
input.name,
|
|
1103
|
+
input.uri,
|
|
1104
|
+
input.description || null,
|
|
1105
|
+
JSON.stringify(input.metadata || {}),
|
|
1106
|
+
timestamp,
|
|
1107
|
+
timestamp
|
|
1108
|
+
]);
|
|
1109
|
+
return rowToSource(d.query("SELECT * FROM project_sources WHERE id = ?").get(id));
|
|
1110
|
+
}
|
|
1111
|
+
function removeProjectSource(id, db) {
|
|
1112
|
+
const d = db || getDatabase();
|
|
1113
|
+
const result = d.run("DELETE FROM project_sources WHERE id = ?", [id]);
|
|
1114
|
+
return result.changes > 0;
|
|
1115
|
+
}
|
|
1116
|
+
function listProjectSources(projectId, db) {
|
|
1117
|
+
const d = db || getDatabase();
|
|
1118
|
+
const rows = d.query("SELECT * FROM project_sources WHERE project_id = ? ORDER BY name").all(projectId);
|
|
1119
|
+
return rows.map(rowToSource);
|
|
1120
|
+
}
|
|
1121
|
+
function getProjectWithSources(id, db) {
|
|
1122
|
+
const d = db || getDatabase();
|
|
1123
|
+
const project = getProject(id, d);
|
|
1124
|
+
if (!project)
|
|
1125
|
+
return null;
|
|
1126
|
+
project.sources = listProjectSources(id, d);
|
|
1127
|
+
return project;
|
|
1128
|
+
}
|
|
1019
1129
|
function nextTaskShortId(projectId, db) {
|
|
1020
1130
|
const d = db || getDatabase();
|
|
1021
1131
|
const project = getProject(projectId, d);
|
|
@@ -1404,6 +1514,59 @@ function taskFromTemplate(templateId, overrides = {}, db) {
|
|
|
1404
1514
|
};
|
|
1405
1515
|
}
|
|
1406
1516
|
|
|
1517
|
+
// src/db/checklists.ts
|
|
1518
|
+
function rowToItem(row) {
|
|
1519
|
+
return { ...row, checked: !!row.checked };
|
|
1520
|
+
}
|
|
1521
|
+
function getChecklist(taskId, db) {
|
|
1522
|
+
const d = db || getDatabase();
|
|
1523
|
+
const rows = d.query("SELECT * FROM task_checklists WHERE task_id = ? ORDER BY position, created_at").all(taskId);
|
|
1524
|
+
return rows.map(rowToItem);
|
|
1525
|
+
}
|
|
1526
|
+
function addChecklistItem(input, db) {
|
|
1527
|
+
const d = db || getDatabase();
|
|
1528
|
+
const id = uuid();
|
|
1529
|
+
const timestamp = now();
|
|
1530
|
+
let position = input.position;
|
|
1531
|
+
if (position === undefined) {
|
|
1532
|
+
const maxRow = d.query("SELECT MAX(position) as max_pos FROM task_checklists WHERE task_id = ?").get(input.task_id);
|
|
1533
|
+
position = (maxRow?.max_pos ?? -1) + 1;
|
|
1534
|
+
}
|
|
1535
|
+
d.run("INSERT INTO task_checklists (id, task_id, position, text, checked, created_at, updated_at) VALUES (?, ?, ?, ?, 0, ?, ?)", [id, input.task_id, position, input.text, timestamp, timestamp]);
|
|
1536
|
+
return rowToItem(d.query("SELECT * FROM task_checklists WHERE id = ?").get(id));
|
|
1537
|
+
}
|
|
1538
|
+
function checkChecklistItem(id, checked, db) {
|
|
1539
|
+
const d = db || getDatabase();
|
|
1540
|
+
const timestamp = now();
|
|
1541
|
+
const result = d.run("UPDATE task_checklists SET checked = ?, updated_at = ? WHERE id = ?", [checked ? 1 : 0, timestamp, id]);
|
|
1542
|
+
if (result.changes === 0)
|
|
1543
|
+
return null;
|
|
1544
|
+
return rowToItem(d.query("SELECT * FROM task_checklists WHERE id = ?").get(id));
|
|
1545
|
+
}
|
|
1546
|
+
function updateChecklistItemText(id, text, db) {
|
|
1547
|
+
const d = db || getDatabase();
|
|
1548
|
+
const timestamp = now();
|
|
1549
|
+
const result = d.run("UPDATE task_checklists SET text = ?, updated_at = ? WHERE id = ?", [text, timestamp, id]);
|
|
1550
|
+
if (result.changes === 0)
|
|
1551
|
+
return null;
|
|
1552
|
+
return rowToItem(d.query("SELECT * FROM task_checklists WHERE id = ?").get(id));
|
|
1553
|
+
}
|
|
1554
|
+
function removeChecklistItem(id, db) {
|
|
1555
|
+
const d = db || getDatabase();
|
|
1556
|
+
const result = d.run("DELETE FROM task_checklists WHERE id = ?", [id]);
|
|
1557
|
+
return result.changes > 0;
|
|
1558
|
+
}
|
|
1559
|
+
function clearChecklist(taskId, db) {
|
|
1560
|
+
const d = db || getDatabase();
|
|
1561
|
+
const result = d.run("DELETE FROM task_checklists WHERE task_id = ?", [taskId]);
|
|
1562
|
+
return result.changes;
|
|
1563
|
+
}
|
|
1564
|
+
function getChecklistStats(taskId, db) {
|
|
1565
|
+
const d = db || getDatabase();
|
|
1566
|
+
const row = d.query("SELECT COUNT(*) as total, SUM(checked) as checked FROM task_checklists WHERE task_id = ?").get(taskId);
|
|
1567
|
+
return { total: row?.total ?? 0, checked: row?.checked ?? 0 };
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1407
1570
|
// src/db/tasks.ts
|
|
1408
1571
|
function rowToTask(row) {
|
|
1409
1572
|
return {
|
|
@@ -1497,13 +1660,15 @@ function getTaskWithRelations(id, db) {
|
|
|
1497
1660
|
const blocked_by = blockedByRows.map(rowToTask);
|
|
1498
1661
|
const comments = d.query("SELECT * FROM task_comments WHERE task_id = ? ORDER BY created_at").all(id);
|
|
1499
1662
|
const parent = task.parent_id ? getTask(task.parent_id, d) : null;
|
|
1663
|
+
const checklist = getChecklist(id, d);
|
|
1500
1664
|
return {
|
|
1501
1665
|
...task,
|
|
1502
1666
|
subtasks,
|
|
1503
1667
|
dependencies,
|
|
1504
1668
|
blocked_by,
|
|
1505
1669
|
comments,
|
|
1506
|
-
parent
|
|
1670
|
+
parent,
|
|
1671
|
+
checklist
|
|
1507
1672
|
};
|
|
1508
1673
|
}
|
|
1509
1674
|
function listTasks(filter = {}, db) {
|
|
@@ -2428,6 +2593,19 @@ function bulkUpdateTasks(taskIds, updates, db) {
|
|
|
2428
2593
|
tx();
|
|
2429
2594
|
return { updated, failed };
|
|
2430
2595
|
}
|
|
2596
|
+
function getOverdueTasks(projectId, db) {
|
|
2597
|
+
const d = db || getDatabase();
|
|
2598
|
+
const nowStr = new Date().toISOString();
|
|
2599
|
+
let query = `SELECT * FROM tasks WHERE due_at IS NOT NULL AND due_at < ? AND status NOT IN ('completed', 'cancelled', 'failed')`;
|
|
2600
|
+
const params = [nowStr];
|
|
2601
|
+
if (projectId) {
|
|
2602
|
+
query += ` AND project_id = ?`;
|
|
2603
|
+
params.push(projectId);
|
|
2604
|
+
}
|
|
2605
|
+
query += ` ORDER BY due_at ASC`;
|
|
2606
|
+
const rows = d.query(query).all(...params);
|
|
2607
|
+
return rows.map(rowToTask);
|
|
2608
|
+
}
|
|
2431
2609
|
// src/db/plans.ts
|
|
2432
2610
|
function createPlan(input, db) {
|
|
2433
2611
|
const d = db || getDatabase();
|
|
@@ -2818,6 +2996,67 @@ function deleteSession(id, db) {
|
|
|
2818
2996
|
const result = d.run("DELETE FROM sessions WHERE id = ?", [id]);
|
|
2819
2997
|
return result.changes > 0;
|
|
2820
2998
|
}
|
|
2999
|
+
// src/db/handoffs.ts
|
|
3000
|
+
function createHandoff(input, db) {
|
|
3001
|
+
const d = db || getDatabase();
|
|
3002
|
+
const id = uuid();
|
|
3003
|
+
const timestamp = now();
|
|
3004
|
+
d.run(`INSERT INTO handoffs (id, agent_id, project_id, summary, completed, in_progress, blockers, next_steps, created_at)
|
|
3005
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
3006
|
+
id,
|
|
3007
|
+
input.agent_id || null,
|
|
3008
|
+
input.project_id || null,
|
|
3009
|
+
input.summary,
|
|
3010
|
+
input.completed ? JSON.stringify(input.completed) : null,
|
|
3011
|
+
input.in_progress ? JSON.stringify(input.in_progress) : null,
|
|
3012
|
+
input.blockers ? JSON.stringify(input.blockers) : null,
|
|
3013
|
+
input.next_steps ? JSON.stringify(input.next_steps) : null,
|
|
3014
|
+
timestamp
|
|
3015
|
+
]);
|
|
3016
|
+
return {
|
|
3017
|
+
id,
|
|
3018
|
+
agent_id: input.agent_id || null,
|
|
3019
|
+
project_id: input.project_id || null,
|
|
3020
|
+
summary: input.summary,
|
|
3021
|
+
completed: input.completed || null,
|
|
3022
|
+
in_progress: input.in_progress || null,
|
|
3023
|
+
blockers: input.blockers || null,
|
|
3024
|
+
next_steps: input.next_steps || null,
|
|
3025
|
+
created_at: timestamp
|
|
3026
|
+
};
|
|
3027
|
+
}
|
|
3028
|
+
function rowToHandoff(row) {
|
|
3029
|
+
return {
|
|
3030
|
+
...row,
|
|
3031
|
+
completed: row.completed ? JSON.parse(row.completed) : null,
|
|
3032
|
+
in_progress: row.in_progress ? JSON.parse(row.in_progress) : null,
|
|
3033
|
+
blockers: row.blockers ? JSON.parse(row.blockers) : null,
|
|
3034
|
+
next_steps: row.next_steps ? JSON.parse(row.next_steps) : null
|
|
3035
|
+
};
|
|
3036
|
+
}
|
|
3037
|
+
function listHandoffs(projectId, limit = 10, db) {
|
|
3038
|
+
const d = db || getDatabase();
|
|
3039
|
+
if (projectId) {
|
|
3040
|
+
return d.query("SELECT * FROM handoffs WHERE project_id = ? ORDER BY rowid DESC LIMIT ?").all(projectId, limit).map(rowToHandoff);
|
|
3041
|
+
}
|
|
3042
|
+
return d.query("SELECT * FROM handoffs ORDER BY rowid DESC LIMIT ?").all(limit).map(rowToHandoff);
|
|
3043
|
+
}
|
|
3044
|
+
function getLatestHandoff(agentId, projectId, db) {
|
|
3045
|
+
const d = db || getDatabase();
|
|
3046
|
+
let query = "SELECT * FROM handoffs WHERE 1=1";
|
|
3047
|
+
const params = [];
|
|
3048
|
+
if (agentId) {
|
|
3049
|
+
query += " AND agent_id = ?";
|
|
3050
|
+
params.push(agentId);
|
|
3051
|
+
}
|
|
3052
|
+
if (projectId) {
|
|
3053
|
+
query += " AND project_id = ?";
|
|
3054
|
+
params.push(projectId);
|
|
3055
|
+
}
|
|
3056
|
+
query += " ORDER BY rowid DESC LIMIT 1";
|
|
3057
|
+
const row = d.query(query).get(...params);
|
|
3058
|
+
return row ? rowToHandoff(row) : null;
|
|
3059
|
+
}
|
|
2821
3060
|
// src/db/orgs.ts
|
|
2822
3061
|
function rowToOrg(row) {
|
|
2823
3062
|
return { ...row, metadata: JSON.parse(row.metadata || "{}") };
|
|
@@ -3497,6 +3736,7 @@ export {
|
|
|
3497
3736
|
updateProject,
|
|
3498
3737
|
updatePlan,
|
|
3499
3738
|
updateOrg,
|
|
3739
|
+
updateChecklistItemText,
|
|
3500
3740
|
updateAgentActivity,
|
|
3501
3741
|
updateAgent,
|
|
3502
3742
|
unlockTask,
|
|
@@ -3510,7 +3750,9 @@ export {
|
|
|
3510
3750
|
searchTasks,
|
|
3511
3751
|
resolvePartialId,
|
|
3512
3752
|
resetDatabase,
|
|
3753
|
+
removeProjectSource,
|
|
3513
3754
|
removeDependency,
|
|
3755
|
+
removeChecklistItem,
|
|
3514
3756
|
registerAgent,
|
|
3515
3757
|
redistributeStaleTasks,
|
|
3516
3758
|
parseRecurrenceRule,
|
|
@@ -3528,8 +3770,10 @@ export {
|
|
|
3528
3770
|
listTaskLists,
|
|
3529
3771
|
listSessions,
|
|
3530
3772
|
listProjects,
|
|
3773
|
+
listProjectSources,
|
|
3531
3774
|
listPlans,
|
|
3532
3775
|
listOrgs,
|
|
3776
|
+
listHandoffs,
|
|
3533
3777
|
listComments,
|
|
3534
3778
|
listAgents,
|
|
3535
3779
|
isValidRecurrenceRule,
|
|
@@ -3550,17 +3794,22 @@ export {
|
|
|
3550
3794
|
getStaleTasks,
|
|
3551
3795
|
getSession,
|
|
3552
3796
|
getRecentActivity,
|
|
3797
|
+
getProjectWithSources,
|
|
3553
3798
|
getProjectByPath,
|
|
3554
3799
|
getProject,
|
|
3555
3800
|
getPlan,
|
|
3801
|
+
getOverdueTasks,
|
|
3556
3802
|
getOrgChart,
|
|
3557
3803
|
getOrgByName,
|
|
3558
3804
|
getOrg,
|
|
3559
3805
|
getNextTask,
|
|
3806
|
+
getLatestHandoff,
|
|
3560
3807
|
getDirectReports,
|
|
3561
3808
|
getDatabase,
|
|
3562
3809
|
getCompletionGuardConfig,
|
|
3563
3810
|
getComment,
|
|
3811
|
+
getChecklistStats,
|
|
3812
|
+
getChecklist,
|
|
3564
3813
|
getBlockingDeps,
|
|
3565
3814
|
getAgentByName,
|
|
3566
3815
|
getAgent,
|
|
@@ -3589,17 +3838,22 @@ export {
|
|
|
3589
3838
|
createProject,
|
|
3590
3839
|
createPlan,
|
|
3591
3840
|
createOrg,
|
|
3841
|
+
createHandoff,
|
|
3592
3842
|
createClient,
|
|
3593
3843
|
countTasks,
|
|
3594
3844
|
completeTask,
|
|
3595
3845
|
closeDatabase,
|
|
3596
3846
|
cloneTask,
|
|
3847
|
+
clearChecklist,
|
|
3597
3848
|
claimNextTask,
|
|
3598
3849
|
checkCompletionGuard,
|
|
3850
|
+
checkChecklistItem,
|
|
3599
3851
|
bulkUpdateTasks,
|
|
3600
3852
|
bulkCreateTasks,
|
|
3853
|
+
addProjectSource,
|
|
3601
3854
|
addDependency,
|
|
3602
3855
|
addComment,
|
|
3856
|
+
addChecklistItem,
|
|
3603
3857
|
VersionConflictError,
|
|
3604
3858
|
TodosClient,
|
|
3605
3859
|
TaskNotFoundError,
|