@hasna/todos 0.11.31 → 0.11.32
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/commands/agent-commands.d.ts +3 -0
- package/dist/cli/commands/agent-commands.d.ts.map +1 -0
- package/dist/cli/commands/cloud-commands.d.ts +3 -0
- package/dist/cli/commands/cloud-commands.d.ts.map +1 -0
- package/dist/cli/commands/config-serve-commands.d.ts +3 -0
- package/dist/cli/commands/config-serve-commands.d.ts.map +1 -0
- package/dist/cli/commands/machines.d.ts.map +1 -1
- package/dist/cli/commands/mcp-hooks-commands.d.ts +3 -0
- package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -0
- package/dist/cli/commands/plan-template-commands.d.ts +3 -0
- package/dist/cli/commands/plan-template-commands.d.ts.map +1 -0
- package/dist/cli/commands/project-commands.d.ts +3 -0
- package/dist/cli/commands/project-commands.d.ts.map +1 -0
- package/dist/cli/commands/query-commands.d.ts +3 -0
- package/dist/cli/commands/query-commands.d.ts.map +1 -0
- package/dist/cli/commands/task-commands.d.ts +3 -0
- package/dist/cli/commands/task-commands.d.ts.map +1 -0
- package/dist/cli/helpers.d.ts +21 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/index.js +27979 -28098
- package/dist/db/cycles.d.ts +78 -0
- package/dist/db/cycles.d.ts.map +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-crud.d.ts.map +1 -1
- package/dist/db/webhooks.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +165 -3
- package/dist/lib/auto-assign.d.ts.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/mcp/index.js +21 -2
- package/dist/server/index.js +23 -3
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cycles — time-boxed iteration periods (like Linear.app cycles).
|
|
3
|
+
*
|
|
4
|
+
* A cycle has a start/end date, a number, and a duration in weeks.
|
|
5
|
+
* Tasks can be assigned to a cycle via the cycle_id column on tasks.
|
|
6
|
+
*/
|
|
7
|
+
import type { Database } from "bun:sqlite";
|
|
8
|
+
export interface Cycle {
|
|
9
|
+
id: string;
|
|
10
|
+
project_id: string | null;
|
|
11
|
+
number: number;
|
|
12
|
+
start_date: string;
|
|
13
|
+
end_date: string;
|
|
14
|
+
duration_weeks: number;
|
|
15
|
+
status: "active" | "completed" | "archived";
|
|
16
|
+
created_at: string;
|
|
17
|
+
updated_at: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CycleWithStats extends Cycle {
|
|
20
|
+
task_count: number;
|
|
21
|
+
completed_count: number;
|
|
22
|
+
started_count: number;
|
|
23
|
+
uncompleted_count: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CreateCycleInput {
|
|
26
|
+
project_id?: string;
|
|
27
|
+
number?: number;
|
|
28
|
+
start_date: string;
|
|
29
|
+
duration_weeks?: number;
|
|
30
|
+
status?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CycleUpdateInput {
|
|
33
|
+
status?: string;
|
|
34
|
+
start_date?: string;
|
|
35
|
+
end_date?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface CycleQueryOptions {
|
|
38
|
+
project_id?: string;
|
|
39
|
+
status?: string;
|
|
40
|
+
limit?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare function createCycle(input: CreateCycleInput, db?: Database): Cycle;
|
|
43
|
+
export declare function getCycle(id: string, db?: Database): Cycle | null;
|
|
44
|
+
export declare function getCycleByNumber(project_id: string, number: number, db?: Database): Cycle | null;
|
|
45
|
+
export declare function listCycles(options?: CycleQueryOptions, db?: Database): Cycle[];
|
|
46
|
+
export declare function updateCycle(id: string, input: CycleUpdateInput, db?: Database): Cycle | null;
|
|
47
|
+
export declare function deleteCycle(id: string, db?: Database): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Generate a sequence of cycles starting from a given date.
|
|
50
|
+
* Creates `count` cycles with the specified duration_weeks.
|
|
51
|
+
*/
|
|
52
|
+
export declare function generateCycles(project_id: string, options: {
|
|
53
|
+
start_date: string;
|
|
54
|
+
count: number;
|
|
55
|
+
duration_weeks?: number;
|
|
56
|
+
}, db?: Database): Cycle[];
|
|
57
|
+
/**
|
|
58
|
+
* Get the currently active cycle for a project (today falls within start/end).
|
|
59
|
+
*/
|
|
60
|
+
export declare function getCurrentCycle(project_id: string, db?: Database): Cycle | null;
|
|
61
|
+
/**
|
|
62
|
+
* Get the next upcoming cycle (start_date is in the future).
|
|
63
|
+
*/
|
|
64
|
+
export declare function getNextCycle(project_id: string, db?: Database): Cycle | null;
|
|
65
|
+
/**
|
|
66
|
+
* Get cycle statistics (task counts by state).
|
|
67
|
+
*/
|
|
68
|
+
export declare function getCycleStats(cycle_id: string, db?: Database): {
|
|
69
|
+
task_count: number;
|
|
70
|
+
completed_count: number;
|
|
71
|
+
started_count: number;
|
|
72
|
+
uncompleted_count: number;
|
|
73
|
+
} | null;
|
|
74
|
+
/**
|
|
75
|
+
* List all cycles with their task stats for a project.
|
|
76
|
+
*/
|
|
77
|
+
export declare function listCyclesWithStats(options?: CycleQueryOptions, db?: Database): CycleWithStats[];
|
|
78
|
+
//# sourceMappingURL=cycles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../src/db/cycles.ts"],"names":[],"mappings":"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"}
|
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;AAGtC,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8BhD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,
|
|
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,CAkb/C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA4BnD"}
|
|
@@ -1 +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,
|
|
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,CAsEtE;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/db/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAsBrE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/db/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAsBrE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CA+CvG;AAyBD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAcD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAsB/E;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAIpE;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAGrD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAGhE;AAED,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,eAAe,EAAE,CAM/F;AAqGD,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type { TodosClientOptions } from "./sdk.js";
|
|
|
3
3
|
export { getDatabase, closeDatabase, resetDatabase, resolvePartialId, now, uuid } from "./db/database.js";
|
|
4
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, stealTask, claimOrSteal, logCost, getActiveWork, failTask, getTasksChangedSince, getStaleTasks, getStatus, decomposeTasks, setTaskStatus, setTaskPriority, redistributeStaleTasks, getOverdueTasks, archiveTasks, unarchiveTask, } from "./db/tasks.js";
|
|
5
5
|
export type { TaskGraphNode, TaskGraph, BulkCreateTaskInput, ActiveWorkItem, StatusSummary, DecomposeSubtaskInput } from "./db/tasks.js";
|
|
6
|
+
export { createCycle, getCycle, getCycleByNumber, listCycles, updateCycle, deleteCycle, generateCycles, getCurrentCycle, getNextCycle, getCycleStats, listCyclesWithStats, } from "./db/cycles.js";
|
|
7
|
+
export type { Cycle, CycleWithStats, CreateCycleInput, CycleUpdateInput, CycleQueryOptions } from "./db/cycles.js";
|
|
6
8
|
export { createProject, getProject, getProjectByPath, getProjectWithSources, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, addProjectSource, removeProjectSource, listProjectSources, renameProject, setMachineLocalPath, getMachineLocalPath, listMachineLocalPaths, removeMachineLocalPath, } from "./db/projects.js";
|
|
7
9
|
export type { ProjectMachinePath } from "./db/projects.js";
|
|
8
10
|
export { createPlan, getPlan, listPlans, updatePlan, deletePlan, } from "./db/plans.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1188,6 +1188,24 @@ function ensureSchema(db) {
|
|
|
1188
1188
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_watchers_agent ON task_watchers(agent_id)");
|
|
1189
1189
|
ensureColumn("task_dependencies", "external_project_id", "TEXT");
|
|
1190
1190
|
ensureColumn("task_dependencies", "external_task_id", "TEXT");
|
|
1191
|
+
ensureTable("cycles", `
|
|
1192
|
+
CREATE TABLE cycles (
|
|
1193
|
+
id TEXT PRIMARY KEY,
|
|
1194
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
1195
|
+
number INTEGER NOT NULL,
|
|
1196
|
+
start_date TEXT NOT NULL,
|
|
1197
|
+
end_date TEXT NOT NULL,
|
|
1198
|
+
duration_weeks INTEGER NOT NULL DEFAULT 1,
|
|
1199
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'completed', 'archived')),
|
|
1200
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1201
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
1202
|
+
)`);
|
|
1203
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_project ON cycles(project_id)");
|
|
1204
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_number ON cycles(number)");
|
|
1205
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_status ON cycles(status)");
|
|
1206
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_dates ON cycles(start_date, end_date)");
|
|
1207
|
+
ensureColumn("tasks", "cycle_id", "TEXT REFERENCES cycles(id) ON DELETE SET NULL");
|
|
1208
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_cycle ON tasks(cycle_id) WHERE cycle_id IS NOT NULL");
|
|
1191
1209
|
}
|
|
1192
1210
|
function backfillTaskTags(db) {
|
|
1193
1211
|
try {
|
|
@@ -2758,6 +2776,7 @@ function validateWebhookUrl(urlString) {
|
|
|
2758
2776
|
if (hostname === "169.254.169.254" || hostname.startsWith("169.254.")) {
|
|
2759
2777
|
return { valid: false, error: "Webhook URLs cannot target cloud metadata endpoints" };
|
|
2760
2778
|
}
|
|
2779
|
+
const cleanHostname = hostname.replace(/^\[|\]$/g, "");
|
|
2761
2780
|
const privateRanges = [
|
|
2762
2781
|
/^10\./,
|
|
2763
2782
|
/^172\.(1[6-9]|2\d|3[01])\./,
|
|
@@ -2768,7 +2787,7 @@ function validateWebhookUrl(urlString) {
|
|
|
2768
2787
|
/^fe80:/i
|
|
2769
2788
|
];
|
|
2770
2789
|
for (const range of privateRanges) {
|
|
2771
|
-
if (range.test(
|
|
2790
|
+
if (range.test(cleanHostname)) {
|
|
2772
2791
|
return { valid: false, error: "Webhook URLs cannot target private IP ranges" };
|
|
2773
2792
|
}
|
|
2774
2793
|
}
|
|
@@ -3024,14 +3043,15 @@ function createTask(input, db) {
|
|
|
3024
3043
|
let id = uuid();
|
|
3025
3044
|
for (let attempt = 0;attempt < 3; attempt++) {
|
|
3026
3045
|
try {
|
|
3027
|
-
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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
3028
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
3046
|
+
d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, cycle_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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
3047
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
3029
3048
|
id,
|
|
3030
3049
|
null,
|
|
3031
3050
|
input.project_id || null,
|
|
3032
3051
|
input.parent_id || null,
|
|
3033
3052
|
input.plan_id || null,
|
|
3034
3053
|
input.task_list_id || null,
|
|
3054
|
+
input.cycle_id || null,
|
|
3035
3055
|
input.title,
|
|
3036
3056
|
input.description || null,
|
|
3037
3057
|
input.status || "pending",
|
|
@@ -4716,6 +4736,137 @@ function logCost(taskId, tokens, usd, db) {
|
|
|
4716
4736
|
const d = db || getDatabase();
|
|
4717
4737
|
d.run("UPDATE tasks SET cost_tokens = cost_tokens + ?, cost_usd = cost_usd + ?, updated_at = ? WHERE id = ?", [tokens, usd, now(), taskId]);
|
|
4718
4738
|
}
|
|
4739
|
+
// src/db/cycles.ts
|
|
4740
|
+
init_database();
|
|
4741
|
+
function createCycle(input, db) {
|
|
4742
|
+
const d = db || getDatabase();
|
|
4743
|
+
const id = crypto.randomUUID();
|
|
4744
|
+
const project_id = input.project_id || null;
|
|
4745
|
+
const duration_weeks = input.duration_weeks ?? 1;
|
|
4746
|
+
const start = new Date(input.start_date);
|
|
4747
|
+
const end_date = new Date(start);
|
|
4748
|
+
end_date.setDate(end_date.getDate() + duration_weeks * 7);
|
|
4749
|
+
const number = input.number ?? getNextCycleNumber(project_id, d);
|
|
4750
|
+
const stmt = d.prepare(`
|
|
4751
|
+
INSERT INTO cycles (id, project_id, number, start_date, end_date, duration_weeks, status)
|
|
4752
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
4753
|
+
`);
|
|
4754
|
+
stmt.run(id, project_id, number, input.start_date, end_date.toISOString().split("T")[0], duration_weeks, input.status || "active");
|
|
4755
|
+
return getCycle(id, d);
|
|
4756
|
+
}
|
|
4757
|
+
function getNextCycleNumber(project_id, db) {
|
|
4758
|
+
if (!project_id)
|
|
4759
|
+
return 1;
|
|
4760
|
+
const row = db.query("SELECT MAX(number) as max_num FROM cycles WHERE project_id = ?").get(project_id);
|
|
4761
|
+
return (row?.max_num ?? 0) + 1;
|
|
4762
|
+
}
|
|
4763
|
+
function getCycle(id, db) {
|
|
4764
|
+
const d = db || getDatabase();
|
|
4765
|
+
return d.query("SELECT * FROM cycles WHERE id = ?").get(id);
|
|
4766
|
+
}
|
|
4767
|
+
function getCycleByNumber(project_id, number, db) {
|
|
4768
|
+
const d = db || getDatabase();
|
|
4769
|
+
return d.query("SELECT * FROM cycles WHERE project_id = ? AND number = ?").get(project_id, number);
|
|
4770
|
+
}
|
|
4771
|
+
function listCycles(options = {}, db) {
|
|
4772
|
+
const d = db || getDatabase();
|
|
4773
|
+
let sql = "SELECT * FROM cycles WHERE 1=1";
|
|
4774
|
+
const params = [];
|
|
4775
|
+
if (options.project_id) {
|
|
4776
|
+
sql += " AND project_id = ?";
|
|
4777
|
+
params.push(options.project_id);
|
|
4778
|
+
}
|
|
4779
|
+
if (options.status) {
|
|
4780
|
+
sql += " AND status = ?";
|
|
4781
|
+
params.push(options.status);
|
|
4782
|
+
}
|
|
4783
|
+
sql += " ORDER BY start_date DESC";
|
|
4784
|
+
if (options.limit)
|
|
4785
|
+
sql += " LIMIT ?";
|
|
4786
|
+
if (options.limit)
|
|
4787
|
+
params.push(options.limit);
|
|
4788
|
+
return d.prepare(sql).all(...params);
|
|
4789
|
+
}
|
|
4790
|
+
function updateCycle(id, input, db) {
|
|
4791
|
+
const d = db || getDatabase();
|
|
4792
|
+
const existing = getCycle(id, d);
|
|
4793
|
+
if (!existing)
|
|
4794
|
+
return null;
|
|
4795
|
+
const parts = [];
|
|
4796
|
+
const params = [];
|
|
4797
|
+
if (input.status !== undefined) {
|
|
4798
|
+
parts.push("status = ?");
|
|
4799
|
+
params.push(input.status);
|
|
4800
|
+
}
|
|
4801
|
+
if (input.start_date !== undefined) {
|
|
4802
|
+
parts.push("start_date = ?");
|
|
4803
|
+
params.push(input.start_date);
|
|
4804
|
+
}
|
|
4805
|
+
if (input.end_date !== undefined) {
|
|
4806
|
+
parts.push("end_date = ?");
|
|
4807
|
+
params.push(input.end_date);
|
|
4808
|
+
}
|
|
4809
|
+
parts.push("updated_at = datetime('now')");
|
|
4810
|
+
params.push(id);
|
|
4811
|
+
d.prepare(`UPDATE cycles SET ${parts.join(", ")} WHERE id = ?`).run(...params);
|
|
4812
|
+
return getCycle(id, d);
|
|
4813
|
+
}
|
|
4814
|
+
function deleteCycle(id, db) {
|
|
4815
|
+
const d = db || getDatabase();
|
|
4816
|
+
const result = d.prepare("DELETE FROM cycles WHERE id = ?").run(id);
|
|
4817
|
+
return result.changes > 0;
|
|
4818
|
+
}
|
|
4819
|
+
function generateCycles(project_id, options, db) {
|
|
4820
|
+
const d = db || getDatabase();
|
|
4821
|
+
const duration_weeks = options.duration_weeks ?? 1;
|
|
4822
|
+
const cycles = [];
|
|
4823
|
+
let startDate = new Date(options.start_date);
|
|
4824
|
+
for (let i = 0;i < options.count; i++) {
|
|
4825
|
+
const cycle = createCycle({
|
|
4826
|
+
project_id,
|
|
4827
|
+
start_date: startDate.toISOString().split("T")[0],
|
|
4828
|
+
duration_weeks
|
|
4829
|
+
}, d);
|
|
4830
|
+
cycles.push(cycle);
|
|
4831
|
+
startDate.setDate(startDate.getDate() + duration_weeks * 7);
|
|
4832
|
+
}
|
|
4833
|
+
return cycles;
|
|
4834
|
+
}
|
|
4835
|
+
function getCurrentCycle(project_id, db) {
|
|
4836
|
+
const d = db || getDatabase();
|
|
4837
|
+
const today = new Date().toISOString().split("T")[0];
|
|
4838
|
+
return d.query("SELECT * FROM cycles WHERE project_id = ? AND status = 'active' AND start_date <= ? AND end_date >= ? ORDER BY number DESC LIMIT 1").get(project_id, today, today);
|
|
4839
|
+
}
|
|
4840
|
+
function getNextCycle(project_id, db) {
|
|
4841
|
+
const d = db || getDatabase();
|
|
4842
|
+
const today = new Date().toISOString().split("T")[0];
|
|
4843
|
+
return d.query("SELECT * FROM cycles WHERE project_id = ? AND start_date > ? ORDER BY number ASC LIMIT 1").get(project_id, today);
|
|
4844
|
+
}
|
|
4845
|
+
function getCycleStats(cycle_id, db) {
|
|
4846
|
+
const d = db || getDatabase();
|
|
4847
|
+
const row = d.query(`
|
|
4848
|
+
SELECT
|
|
4849
|
+
COUNT(*) as task_count,
|
|
4850
|
+
COALESCE(SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END), 0) as completed_count,
|
|
4851
|
+
COALESCE(SUM(CASE WHEN status = 'in_progress' THEN 1 ELSE 0 END), 0) as started_count,
|
|
4852
|
+
COALESCE(SUM(CASE WHEN status NOT IN ('completed', 'cancelled') THEN 1 ELSE 0 END), 0) as uncompleted_count
|
|
4853
|
+
FROM tasks WHERE cycle_id = ?
|
|
4854
|
+
`).get(cycle_id);
|
|
4855
|
+
return row ?? null;
|
|
4856
|
+
}
|
|
4857
|
+
function listCyclesWithStats(options = {}, db) {
|
|
4858
|
+
const cycles = listCycles(options, db);
|
|
4859
|
+
return cycles.map((cycle) => {
|
|
4860
|
+
const stats = getCycleStats(cycle.id, db);
|
|
4861
|
+
return {
|
|
4862
|
+
...cycle,
|
|
4863
|
+
task_count: stats?.task_count ?? 0,
|
|
4864
|
+
completed_count: stats?.completed_count ?? 0,
|
|
4865
|
+
started_count: stats?.started_count ?? 0,
|
|
4866
|
+
uncompleted_count: stats?.uncompleted_count ?? 0
|
|
4867
|
+
};
|
|
4868
|
+
});
|
|
4869
|
+
}
|
|
4719
4870
|
// src/db/plans.ts
|
|
4720
4871
|
init_types();
|
|
4721
4872
|
init_database();
|
|
@@ -17845,6 +17996,7 @@ export {
|
|
|
17845
17996
|
updatePlan,
|
|
17846
17997
|
updateOrg,
|
|
17847
17998
|
updateDispatchStatus,
|
|
17999
|
+
updateCycle,
|
|
17848
18000
|
updateChecklistItemText,
|
|
17849
18001
|
updateAgentActivity,
|
|
17850
18002
|
updateAgent,
|
|
@@ -17921,6 +18073,8 @@ export {
|
|
|
17921
18073
|
listDispatches,
|
|
17922
18074
|
listDispatchLogs,
|
|
17923
18075
|
listDeliveries,
|
|
18076
|
+
listCyclesWithStats,
|
|
18077
|
+
listCycles,
|
|
17924
18078
|
listComments,
|
|
17925
18079
|
listAgents,
|
|
17926
18080
|
issueToTask,
|
|
@@ -17965,6 +18119,7 @@ export {
|
|
|
17965
18119
|
getOrg,
|
|
17966
18120
|
getOrCreateLocalMachine,
|
|
17967
18121
|
getNextTask,
|
|
18122
|
+
getNextCycle,
|
|
17968
18123
|
getMachineLocalPath,
|
|
17969
18124
|
getMachineId,
|
|
17970
18125
|
getMachineByName,
|
|
@@ -17977,6 +18132,10 @@ export {
|
|
|
17977
18132
|
getDispatch,
|
|
17978
18133
|
getDirectReports,
|
|
17979
18134
|
getDatabase,
|
|
18135
|
+
getCycleStats,
|
|
18136
|
+
getCycleByNumber,
|
|
18137
|
+
getCycle,
|
|
18138
|
+
getCurrentCycle,
|
|
17980
18139
|
getCriticalPath,
|
|
17981
18140
|
getCompletionGuardConfig,
|
|
17982
18141
|
getComment,
|
|
@@ -17991,6 +18150,7 @@ export {
|
|
|
17991
18150
|
getAgent,
|
|
17992
18151
|
getActiveWork,
|
|
17993
18152
|
getActiveModel,
|
|
18153
|
+
generateCycles,
|
|
17994
18154
|
gatherTrainingData,
|
|
17995
18155
|
formatTmuxTarget,
|
|
17996
18156
|
formatSingleTask,
|
|
@@ -18018,6 +18178,7 @@ export {
|
|
|
18018
18178
|
deletePlan,
|
|
18019
18179
|
deleteOrg,
|
|
18020
18180
|
deleteMachine,
|
|
18181
|
+
deleteCycle,
|
|
18021
18182
|
deleteComment,
|
|
18022
18183
|
deleteAgent,
|
|
18023
18184
|
defaultSyncAgents,
|
|
@@ -18033,6 +18194,7 @@ export {
|
|
|
18033
18194
|
createHandoff,
|
|
18034
18195
|
createDispatchLog,
|
|
18035
18196
|
createDispatch,
|
|
18197
|
+
createCycle,
|
|
18036
18198
|
createClient,
|
|
18037
18199
|
countTasks,
|
|
18038
18200
|
completeTask,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-assign.d.ts","sourceRoot":"","sources":["../../src/lib/auto-assign.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAK9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"auto-assign.d.ts","sourceRoot":"","sources":["../../src/lib/auto-assign.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAK9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CA0BvE;AA8DD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8D7F"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export interface TodosConfig {
|
|
|
29
29
|
/** Per-project agent name pools, keyed by working directory path prefix. */
|
|
30
30
|
project_pools?: Record<string, string[]>;
|
|
31
31
|
}
|
|
32
|
+
export declare function resetConfig(): void;
|
|
32
33
|
export declare function loadConfig(): TodosConfig;
|
|
33
34
|
export declare function getSyncAgentsFromConfig(): string[] | null;
|
|
34
35
|
export declare function getAgentTaskListId(agent: string): string | null;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC1D,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC1D,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAkBD,wBAAgB,WAAW,SAE1B;AAMD,wBAAgB,UAAU,IAAI,WAAW,CAYxC;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,GAAG,IAAI,CAKzD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAG7D;AAUD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAmB3E;AAED,wBAAgB,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CASrG"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -1190,6 +1190,24 @@ function ensureSchema(db) {
|
|
|
1190
1190
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_watchers_agent ON task_watchers(agent_id)");
|
|
1191
1191
|
ensureColumn("task_dependencies", "external_project_id", "TEXT");
|
|
1192
1192
|
ensureColumn("task_dependencies", "external_task_id", "TEXT");
|
|
1193
|
+
ensureTable("cycles", `
|
|
1194
|
+
CREATE TABLE cycles (
|
|
1195
|
+
id TEXT PRIMARY KEY,
|
|
1196
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
1197
|
+
number INTEGER NOT NULL,
|
|
1198
|
+
start_date TEXT NOT NULL,
|
|
1199
|
+
end_date TEXT NOT NULL,
|
|
1200
|
+
duration_weeks INTEGER NOT NULL DEFAULT 1,
|
|
1201
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'completed', 'archived')),
|
|
1202
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1203
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
1204
|
+
)`);
|
|
1205
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_project ON cycles(project_id)");
|
|
1206
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_number ON cycles(number)");
|
|
1207
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_status ON cycles(status)");
|
|
1208
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_dates ON cycles(start_date, end_date)");
|
|
1209
|
+
ensureColumn("tasks", "cycle_id", "TEXT REFERENCES cycles(id) ON DELETE SET NULL");
|
|
1210
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_cycle ON tasks(cycle_id) WHERE cycle_id IS NOT NULL");
|
|
1193
1211
|
}
|
|
1194
1212
|
function backfillTaskTags(db) {
|
|
1195
1213
|
try {
|
|
@@ -13540,14 +13558,15 @@ function createTask(input, db) {
|
|
|
13540
13558
|
let id = uuid();
|
|
13541
13559
|
for (let attempt = 0;attempt < 3; attempt++) {
|
|
13542
13560
|
try {
|
|
13543
|
-
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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
13544
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
13561
|
+
d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, cycle_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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
13562
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
13545
13563
|
id,
|
|
13546
13564
|
null,
|
|
13547
13565
|
input.project_id || null,
|
|
13548
13566
|
input.parent_id || null,
|
|
13549
13567
|
input.plan_id || null,
|
|
13550
13568
|
input.task_list_id || null,
|
|
13569
|
+
input.cycle_id || null,
|
|
13551
13570
|
input.title,
|
|
13552
13571
|
input.description || null,
|
|
13553
13572
|
input.status || "pending",
|
package/dist/server/index.js
CHANGED
|
@@ -1190,6 +1190,24 @@ function ensureSchema(db) {
|
|
|
1190
1190
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_watchers_agent ON task_watchers(agent_id)");
|
|
1191
1191
|
ensureColumn("task_dependencies", "external_project_id", "TEXT");
|
|
1192
1192
|
ensureColumn("task_dependencies", "external_task_id", "TEXT");
|
|
1193
|
+
ensureTable("cycles", `
|
|
1194
|
+
CREATE TABLE cycles (
|
|
1195
|
+
id TEXT PRIMARY KEY,
|
|
1196
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
1197
|
+
number INTEGER NOT NULL,
|
|
1198
|
+
start_date TEXT NOT NULL,
|
|
1199
|
+
end_date TEXT NOT NULL,
|
|
1200
|
+
duration_weeks INTEGER NOT NULL DEFAULT 1,
|
|
1201
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'completed', 'archived')),
|
|
1202
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
1203
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
1204
|
+
)`);
|
|
1205
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_project ON cycles(project_id)");
|
|
1206
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_number ON cycles(number)");
|
|
1207
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_status ON cycles(status)");
|
|
1208
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_cycles_dates ON cycles(start_date, end_date)");
|
|
1209
|
+
ensureColumn("tasks", "cycle_id", "TEXT REFERENCES cycles(id) ON DELETE SET NULL");
|
|
1210
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_tasks_cycle ON tasks(cycle_id) WHERE cycle_id IS NOT NULL");
|
|
1193
1211
|
}
|
|
1194
1212
|
function backfillTaskTags(db) {
|
|
1195
1213
|
try {
|
|
@@ -1732,6 +1750,7 @@ function validateWebhookUrl(urlString) {
|
|
|
1732
1750
|
if (hostname === "169.254.169.254" || hostname.startsWith("169.254.")) {
|
|
1733
1751
|
return { valid: false, error: "Webhook URLs cannot target cloud metadata endpoints" };
|
|
1734
1752
|
}
|
|
1753
|
+
const cleanHostname = hostname.replace(/^\[|\]$/g, "");
|
|
1735
1754
|
const privateRanges = [
|
|
1736
1755
|
/^10\./,
|
|
1737
1756
|
/^172\.(1[6-9]|2\d|3[01])\./,
|
|
@@ -1742,7 +1761,7 @@ function validateWebhookUrl(urlString) {
|
|
|
1742
1761
|
/^fe80:/i
|
|
1743
1762
|
];
|
|
1744
1763
|
for (const range of privateRanges) {
|
|
1745
|
-
if (range.test(
|
|
1764
|
+
if (range.test(cleanHostname)) {
|
|
1746
1765
|
return { valid: false, error: "Webhook URLs cannot target private IP ranges" };
|
|
1747
1766
|
}
|
|
1748
1767
|
}
|
|
@@ -1940,14 +1959,15 @@ function createTask(input, db) {
|
|
|
1940
1959
|
let id = uuid();
|
|
1941
1960
|
for (let attempt = 0;attempt < 3; attempt++) {
|
|
1942
1961
|
try {
|
|
1943
|
-
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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
1944
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
1962
|
+
d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, cycle_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, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
1963
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
1945
1964
|
id,
|
|
1946
1965
|
null,
|
|
1947
1966
|
input.project_id || null,
|
|
1948
1967
|
input.parent_id || null,
|
|
1949
1968
|
input.plan_id || null,
|
|
1950
1969
|
input.task_list_id || null,
|
|
1970
|
+
input.cycle_id || null,
|
|
1951
1971
|
input.title,
|
|
1952
1972
|
input.description || null,
|
|
1953
1973
|
input.status || "pending",
|
package/dist/types/index.d.ts
CHANGED
|
@@ -305,6 +305,7 @@ export interface CreateTaskInput {
|
|
|
305
305
|
parent_id?: string;
|
|
306
306
|
plan_id?: string;
|
|
307
307
|
task_list_id?: string;
|
|
308
|
+
cycle_id?: string;
|
|
308
309
|
status?: TaskStatus;
|
|
309
310
|
priority?: TaskPriority;
|
|
310
311
|
agent_id?: string;
|
|
@@ -333,6 +334,7 @@ export interface UpdateTaskInput {
|
|
|
333
334
|
assigned_to?: string;
|
|
334
335
|
plan_id?: string;
|
|
335
336
|
task_list_id?: string;
|
|
337
|
+
cycle_id?: string | null;
|
|
336
338
|
tags?: string[];
|
|
337
339
|
metadata?: Record<string, unknown>;
|
|
338
340
|
due_at?: string | null;
|