@hasna/todos 0.11.9 → 0.11.10
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 +204 -17
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/templates.d.ts +14 -1
- package/dist/db/templates.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +161 -0
- package/dist/mcp/index.js +204 -17
- package/dist/server/index.js +145 -1
- package/dist/types/index.d.ts +26 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -2290,6 +2290,20 @@ function ensureSchema(db) {
|
|
|
2290
2290
|
metadata TEXT DEFAULT '{}',
|
|
2291
2291
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
2292
2292
|
)`);
|
|
2293
|
+
ensureTable("template_tasks", `
|
|
2294
|
+
CREATE TABLE template_tasks (
|
|
2295
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
2296
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
2297
|
+
position INTEGER NOT NULL,
|
|
2298
|
+
title_pattern TEXT NOT NULL,
|
|
2299
|
+
description TEXT,
|
|
2300
|
+
priority TEXT DEFAULT 'medium',
|
|
2301
|
+
tags TEXT DEFAULT '[]',
|
|
2302
|
+
task_type TEXT,
|
|
2303
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
2304
|
+
metadata TEXT DEFAULT '{}',
|
|
2305
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
2306
|
+
)`);
|
|
2293
2307
|
ensureTable("task_checklists", `
|
|
2294
2308
|
CREATE TABLE task_checklists (
|
|
2295
2309
|
id TEXT PRIMARY KEY,
|
|
@@ -2400,6 +2414,7 @@ function ensureSchema(db) {
|
|
|
2400
2414
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_source ON task_relationships(source_task_id)");
|
|
2401
2415
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_target ON task_relationships(target_task_id)");
|
|
2402
2416
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_type ON task_relationships(relationship_type)");
|
|
2417
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id)");
|
|
2403
2418
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_source ON kg_edges(source_id, source_type)");
|
|
2404
2419
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_target ON kg_edges(target_id, target_type)");
|
|
2405
2420
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_relation ON kg_edges(relation_type)");
|
|
@@ -3043,6 +3058,24 @@ var init_database = __esm(() => {
|
|
|
3043
3058
|
);
|
|
3044
3059
|
|
|
3045
3060
|
INSERT OR IGNORE INTO _migrations (id) VALUES (36);
|
|
3061
|
+
`,
|
|
3062
|
+
`
|
|
3063
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
3064
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
3065
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
3066
|
+
position INTEGER NOT NULL,
|
|
3067
|
+
title_pattern TEXT NOT NULL,
|
|
3068
|
+
description TEXT,
|
|
3069
|
+
priority TEXT DEFAULT 'medium',
|
|
3070
|
+
tags TEXT DEFAULT '[]',
|
|
3071
|
+
task_type TEXT,
|
|
3072
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
3073
|
+
metadata TEXT DEFAULT '{}',
|
|
3074
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
3075
|
+
);
|
|
3076
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
3077
|
+
|
|
3078
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (37);
|
|
3046
3079
|
`
|
|
3047
3080
|
];
|
|
3048
3081
|
});
|
|
@@ -3731,11 +3764,15 @@ var init_webhooks = __esm(() => {
|
|
|
3731
3764
|
var exports_templates = {};
|
|
3732
3765
|
__export(exports_templates, {
|
|
3733
3766
|
updateTemplate: () => updateTemplate,
|
|
3767
|
+
tasksFromTemplate: () => tasksFromTemplate,
|
|
3734
3768
|
taskFromTemplate: () => taskFromTemplate,
|
|
3735
3769
|
listTemplates: () => listTemplates,
|
|
3770
|
+
getTemplateWithTasks: () => getTemplateWithTasks,
|
|
3771
|
+
getTemplateTasks: () => getTemplateTasks,
|
|
3736
3772
|
getTemplate: () => getTemplate,
|
|
3737
3773
|
deleteTemplate: () => deleteTemplate,
|
|
3738
|
-
createTemplate: () => createTemplate
|
|
3774
|
+
createTemplate: () => createTemplate,
|
|
3775
|
+
addTemplateTasks: () => addTemplateTasks
|
|
3739
3776
|
});
|
|
3740
3777
|
function rowToTemplate(row) {
|
|
3741
3778
|
return {
|
|
@@ -3745,6 +3782,15 @@ function rowToTemplate(row) {
|
|
|
3745
3782
|
priority: row.priority || "medium"
|
|
3746
3783
|
};
|
|
3747
3784
|
}
|
|
3785
|
+
function rowToTemplateTask(row) {
|
|
3786
|
+
return {
|
|
3787
|
+
...row,
|
|
3788
|
+
tags: JSON.parse(row.tags || "[]"),
|
|
3789
|
+
depends_on_positions: JSON.parse(row.depends_on_positions || "[]"),
|
|
3790
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
3791
|
+
priority: row.priority || "medium"
|
|
3792
|
+
};
|
|
3793
|
+
}
|
|
3748
3794
|
function resolveTemplateId(id, d) {
|
|
3749
3795
|
return resolvePartialId(d, "task_templates", id);
|
|
3750
3796
|
}
|
|
@@ -3764,6 +3810,9 @@ function createTemplate(input, db) {
|
|
|
3764
3810
|
JSON.stringify(input.metadata || {}),
|
|
3765
3811
|
now()
|
|
3766
3812
|
]);
|
|
3813
|
+
if (input.tasks && input.tasks.length > 0) {
|
|
3814
|
+
addTemplateTasks(id, input.tasks, d);
|
|
3815
|
+
}
|
|
3767
3816
|
return getTemplate(id, d);
|
|
3768
3817
|
}
|
|
3769
3818
|
function getTemplate(id, db) {
|
|
@@ -3845,8 +3894,103 @@ function taskFromTemplate(templateId, overrides = {}, db) {
|
|
|
3845
3894
|
...overrides
|
|
3846
3895
|
};
|
|
3847
3896
|
}
|
|
3897
|
+
function addTemplateTasks(templateId, tasks, db) {
|
|
3898
|
+
const d = db || getDatabase();
|
|
3899
|
+
const template = getTemplate(templateId, d);
|
|
3900
|
+
if (!template)
|
|
3901
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
3902
|
+
d.run("DELETE FROM template_tasks WHERE template_id = ?", [templateId]);
|
|
3903
|
+
const results = [];
|
|
3904
|
+
for (let i = 0;i < tasks.length; i++) {
|
|
3905
|
+
const task = tasks[i];
|
|
3906
|
+
const id = uuid();
|
|
3907
|
+
d.run(`INSERT INTO template_tasks (id, template_id, position, title_pattern, description, priority, tags, task_type, depends_on_positions, metadata, created_at)
|
|
3908
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
3909
|
+
id,
|
|
3910
|
+
templateId,
|
|
3911
|
+
i,
|
|
3912
|
+
task.title_pattern,
|
|
3913
|
+
task.description || null,
|
|
3914
|
+
task.priority || "medium",
|
|
3915
|
+
JSON.stringify(task.tags || []),
|
|
3916
|
+
task.task_type || null,
|
|
3917
|
+
JSON.stringify(task.depends_on || []),
|
|
3918
|
+
JSON.stringify(task.metadata || {}),
|
|
3919
|
+
now()
|
|
3920
|
+
]);
|
|
3921
|
+
const row = d.query("SELECT * FROM template_tasks WHERE id = ?").get(id);
|
|
3922
|
+
if (row)
|
|
3923
|
+
results.push(rowToTemplateTask(row));
|
|
3924
|
+
}
|
|
3925
|
+
return results;
|
|
3926
|
+
}
|
|
3927
|
+
function getTemplateWithTasks(id, db) {
|
|
3928
|
+
const d = db || getDatabase();
|
|
3929
|
+
const template = getTemplate(id, d);
|
|
3930
|
+
if (!template)
|
|
3931
|
+
return null;
|
|
3932
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(template.id);
|
|
3933
|
+
const tasks = rows.map(rowToTemplateTask);
|
|
3934
|
+
return { ...template, tasks };
|
|
3935
|
+
}
|
|
3936
|
+
function getTemplateTasks(templateId, db) {
|
|
3937
|
+
const d = db || getDatabase();
|
|
3938
|
+
const resolved = resolveTemplateId(templateId, d);
|
|
3939
|
+
if (!resolved)
|
|
3940
|
+
return [];
|
|
3941
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(resolved);
|
|
3942
|
+
return rows.map(rowToTemplateTask);
|
|
3943
|
+
}
|
|
3944
|
+
function tasksFromTemplate(templateId, projectId, variables, taskListId, db) {
|
|
3945
|
+
const d = db || getDatabase();
|
|
3946
|
+
const template = getTemplateWithTasks(templateId, d);
|
|
3947
|
+
if (!template)
|
|
3948
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
3949
|
+
if (template.tasks.length === 0) {
|
|
3950
|
+
const input = taskFromTemplate(templateId, { project_id: projectId, task_list_id: taskListId }, d);
|
|
3951
|
+
const task = createTask(input, d);
|
|
3952
|
+
return [task];
|
|
3953
|
+
}
|
|
3954
|
+
const createdTasks = [];
|
|
3955
|
+
const positionToId = new Map;
|
|
3956
|
+
for (const tt of template.tasks) {
|
|
3957
|
+
let title = tt.title_pattern;
|
|
3958
|
+
let desc = tt.description;
|
|
3959
|
+
if (variables) {
|
|
3960
|
+
for (const [key, val] of Object.entries(variables)) {
|
|
3961
|
+
title = title.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
3962
|
+
if (desc)
|
|
3963
|
+
desc = desc.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
3964
|
+
}
|
|
3965
|
+
}
|
|
3966
|
+
const task = createTask({
|
|
3967
|
+
title,
|
|
3968
|
+
description: desc ?? undefined,
|
|
3969
|
+
priority: tt.priority,
|
|
3970
|
+
tags: tt.tags,
|
|
3971
|
+
task_type: tt.task_type ?? undefined,
|
|
3972
|
+
project_id: projectId,
|
|
3973
|
+
task_list_id: taskListId,
|
|
3974
|
+
metadata: tt.metadata
|
|
3975
|
+
}, d);
|
|
3976
|
+
createdTasks.push(task);
|
|
3977
|
+
positionToId.set(tt.position, task.id);
|
|
3978
|
+
}
|
|
3979
|
+
for (const tt of template.tasks) {
|
|
3980
|
+
const deps = tt.depends_on_positions;
|
|
3981
|
+
for (const depPos of deps) {
|
|
3982
|
+
const taskId = positionToId.get(tt.position);
|
|
3983
|
+
const depId = positionToId.get(depPos);
|
|
3984
|
+
if (taskId && depId) {
|
|
3985
|
+
addDependency(taskId, depId, d);
|
|
3986
|
+
}
|
|
3987
|
+
}
|
|
3988
|
+
}
|
|
3989
|
+
return createdTasks;
|
|
3990
|
+
}
|
|
3848
3991
|
var init_templates = __esm(() => {
|
|
3849
3992
|
init_database();
|
|
3993
|
+
init_tasks();
|
|
3850
3994
|
});
|
|
3851
3995
|
|
|
3852
3996
|
// src/db/checklists.ts
|
|
@@ -22940,6 +23084,24 @@ var init_pg_migrations = __esm(() => {
|
|
|
22940
23084
|
);
|
|
22941
23085
|
|
|
22942
23086
|
INSERT INTO _migrations (id) VALUES (36) ON CONFLICT DO NOTHING;
|
|
23087
|
+
`,
|
|
23088
|
+
`
|
|
23089
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
23090
|
+
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
|
|
23091
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
23092
|
+
position INTEGER NOT NULL,
|
|
23093
|
+
title_pattern TEXT NOT NULL,
|
|
23094
|
+
description TEXT,
|
|
23095
|
+
priority TEXT DEFAULT 'medium',
|
|
23096
|
+
tags TEXT DEFAULT '[]',
|
|
23097
|
+
task_type TEXT,
|
|
23098
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
23099
|
+
metadata TEXT DEFAULT '{}',
|
|
23100
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
23101
|
+
);
|
|
23102
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
23103
|
+
|
|
23104
|
+
INSERT INTO _migrations (id) VALUES (37) ON CONFLICT DO NOTHING;
|
|
22943
23105
|
`
|
|
22944
23106
|
];
|
|
22945
23107
|
});
|
|
@@ -24836,19 +24998,31 @@ ${text}` }] };
|
|
|
24836
24998
|
});
|
|
24837
24999
|
}
|
|
24838
25000
|
if (shouldRegisterTool("create_template")) {
|
|
24839
|
-
server.tool("create_template", "Create a reusable task template.", {
|
|
25001
|
+
server.tool("create_template", "Create a reusable task template. Optionally include a tasks array to define a multi-task template with dependencies and variable placeholders ({name} syntax).", {
|
|
24840
25002
|
name: exports_external.string(),
|
|
24841
25003
|
title_pattern: exports_external.string(),
|
|
24842
25004
|
description: exports_external.string().optional(),
|
|
24843
25005
|
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
24844
25006
|
tags: exports_external.array(exports_external.string()).optional(),
|
|
24845
25007
|
project_id: exports_external.string().optional(),
|
|
24846
|
-
plan_id: exports_external.string().optional()
|
|
25008
|
+
plan_id: exports_external.string().optional(),
|
|
25009
|
+
tasks: exports_external.array(exports_external.object({
|
|
25010
|
+
title_pattern: exports_external.string().describe("Title pattern with optional {variable} placeholders"),
|
|
25011
|
+
description: exports_external.string().optional(),
|
|
25012
|
+
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
25013
|
+
tags: exports_external.array(exports_external.string()).optional(),
|
|
25014
|
+
task_type: exports_external.string().optional(),
|
|
25015
|
+
depends_on: exports_external.array(exports_external.number()).optional().describe("Position indices (0-based) of tasks this task depends on"),
|
|
25016
|
+
metadata: exports_external.record(exports_external.unknown()).optional()
|
|
25017
|
+
})).optional().describe("Multi-task template: ordered list of tasks to create together with dependencies")
|
|
24847
25018
|
}, async (params) => {
|
|
24848
25019
|
try {
|
|
24849
|
-
const { createTemplate: createTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
25020
|
+
const { createTemplate: createTemplate2, getTemplateWithTasks: getTemplateWithTasks2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
24850
25021
|
const t = createTemplate2(params);
|
|
24851
|
-
|
|
25022
|
+
const withTasks = getTemplateWithTasks2(t.id);
|
|
25023
|
+
const taskCount = withTasks?.tasks.length ?? 0;
|
|
25024
|
+
const taskInfo = taskCount > 0 ? ` | ${taskCount} task(s)` : "";
|
|
25025
|
+
return { content: [{ type: "text", text: `Template created: ${t.id.slice(0, 8)} | ${t.name} | "${t.title_pattern}"${taskInfo}` }] };
|
|
24852
25026
|
} catch (e) {
|
|
24853
25027
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
24854
25028
|
}
|
|
@@ -24871,23 +25045,34 @@ ${text}` }] };
|
|
|
24871
25045
|
});
|
|
24872
25046
|
}
|
|
24873
25047
|
if (shouldRegisterTool("create_task_from_template")) {
|
|
24874
|
-
server.tool("create_task_from_template", "Create
|
|
25048
|
+
server.tool("create_task_from_template", "Create task(s) from a template. For multi-task templates, creates all tasks with dependencies wired. Supports {variable} substitution in titles/descriptions.", {
|
|
24875
25049
|
template_id: exports_external.string(),
|
|
24876
|
-
title: exports_external.string().optional(),
|
|
24877
|
-
description: exports_external.string().optional(),
|
|
25050
|
+
title: exports_external.string().optional().describe("Override title (single-task templates only)"),
|
|
25051
|
+
description: exports_external.string().optional().describe("Override description (single-task templates only)"),
|
|
24878
25052
|
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
24879
25053
|
assigned_to: exports_external.string().optional(),
|
|
24880
|
-
project_id: exports_external.string().optional()
|
|
25054
|
+
project_id: exports_external.string().optional(),
|
|
25055
|
+
task_list_id: exports_external.string().optional(),
|
|
25056
|
+
variables: exports_external.record(exports_external.string()).optional().describe("Variable substitution map for {name} placeholders in multi-task templates")
|
|
24881
25057
|
}, async (params) => {
|
|
24882
25058
|
try {
|
|
24883
|
-
const { taskFromTemplate: taskFromTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
25059
|
+
const { taskFromTemplate: taskFromTemplate2, getTemplateWithTasks: getTemplateWithTasks2, tasksFromTemplate: tasksFromTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
24884
25060
|
const resolvedTemplateId = resolveId(params.template_id, "task_templates");
|
|
25061
|
+
const templateWithTasks = getTemplateWithTasks2(resolvedTemplateId);
|
|
25062
|
+
if (templateWithTasks && templateWithTasks.tasks.length > 0) {
|
|
25063
|
+
const tasks = tasksFromTemplate2(resolvedTemplateId, params.project_id || templateWithTasks.project_id || "", params.variables, params.task_list_id);
|
|
25064
|
+
const text = tasks.map((t) => `${t.id.slice(0, 8)} | ${t.priority} | ${t.title}`).join(`
|
|
25065
|
+
`);
|
|
25066
|
+
return { content: [{ type: "text", text: `${tasks.length} task(s) created from template:
|
|
25067
|
+
${text}` }] };
|
|
25068
|
+
}
|
|
24885
25069
|
const input = taskFromTemplate2(resolvedTemplateId, {
|
|
24886
25070
|
title: params.title,
|
|
24887
25071
|
description: params.description,
|
|
24888
25072
|
priority: params.priority,
|
|
24889
25073
|
assigned_to: params.assigned_to,
|
|
24890
|
-
project_id: params.project_id
|
|
25074
|
+
project_id: params.project_id,
|
|
25075
|
+
task_list_id: params.task_list_id
|
|
24891
25076
|
});
|
|
24892
25077
|
const task = createTask(input);
|
|
24893
25078
|
return { content: [{ type: "text", text: `Task created from template:
|
|
@@ -26275,13 +26460,15 @@ ${stack_trace.slice(0, 1500)}
|
|
|
26275
26460
|
delete_webhook: `Delete a webhook by ID.
|
|
26276
26461
|
Params: id(string, req)
|
|
26277
26462
|
Example: {id: 'a1b2c3d4'}`,
|
|
26278
|
-
create_template: `Create a reusable task template.
|
|
26279
|
-
Params: name(string, req), title_pattern(string, req
|
|
26280
|
-
Example: {name: 'Bug Report', title_pattern: 'Bug: {description}', priority: 'high', tags: ['bug']}
|
|
26463
|
+
create_template: `Create a reusable task template. Supports multi-task templates with dependencies.
|
|
26464
|
+
Params: name(string, req), title_pattern(string, req), description(string), priority(low|medium|high|critical), tags(string[]), project_id(string), plan_id(string), tasks(array of {title_pattern, description, priority, tags, task_type, depends_on(number[]), metadata})
|
|
26465
|
+
Example single: {name: 'Bug Report', title_pattern: 'Bug: {description}', priority: 'high', tags: ['bug']}
|
|
26466
|
+
Example multi: {name: 'Feature', title_pattern: 'Feature: {name}', tasks: [{title_pattern: 'Design {name}'}, {title_pattern: 'Implement {name}', depends_on: [0]}, {title_pattern: 'Test {name}', depends_on: [1]}]}`,
|
|
26281
26467
|
list_templates: "List all task templates. No params.",
|
|
26282
|
-
create_task_from_template: `Create
|
|
26283
|
-
Params: template_id(string, req), title(string), description(string), priority(low|medium|high|critical), assigned_to(string), project_id(string)
|
|
26284
|
-
Example: {template_id: 'a1b2c3d4', assigned_to: 'maximus'}
|
|
26468
|
+
create_task_from_template: `Create task(s) from a template. Multi-task templates create all tasks with dependencies wired. Supports {variable} substitution.
|
|
26469
|
+
Params: template_id(string, req), title(string \u2014 single-task override), description(string), priority(low|medium|high|critical), assigned_to(string), project_id(string), task_list_id(string), variables(Record<string,string> \u2014 {name} substitution)
|
|
26470
|
+
Example single: {template_id: 'a1b2c3d4', assigned_to: 'maximus'}
|
|
26471
|
+
Example multi: {template_id: 'a1b2c3d4', project_id: 'proj1', variables: {name: 'OAuth login'}}`,
|
|
26285
26472
|
delete_template: `Delete a task template.
|
|
26286
26473
|
Params: id(string, req)
|
|
26287
26474
|
Example: {id: 'a1b2c3d4'}`,
|
|
@@ -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;AAwqBtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAkBrD;AAqTD,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,CAsC9F"}
|
|
@@ -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,EA6kBjC,CAAC"}
|
package/dist/db/templates.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { TaskTemplate, CreateTemplateInput, CreateTaskInput } from "../types/index.js";
|
|
2
|
+
import type { TaskTemplate, CreateTemplateInput, CreateTaskInput, TemplateTask, TemplateTaskInput, TemplateWithTasks, Task } from "../types/index.js";
|
|
3
3
|
export interface UpdateTemplateInput {
|
|
4
4
|
name?: string;
|
|
5
5
|
title_pattern?: string;
|
|
@@ -16,4 +16,17 @@ export declare function listTemplates(db?: Database): TaskTemplate[];
|
|
|
16
16
|
export declare function deleteTemplate(id: string, db?: Database): boolean;
|
|
17
17
|
export declare function updateTemplate(id: string, updates: UpdateTemplateInput, db?: Database): TaskTemplate | null;
|
|
18
18
|
export declare function taskFromTemplate(templateId: string, overrides?: Partial<CreateTaskInput>, db?: Database): CreateTaskInput;
|
|
19
|
+
/** Add tasks to a template, replacing any existing template tasks */
|
|
20
|
+
export declare function addTemplateTasks(templateId: string, tasks: TemplateTaskInput[], db?: Database): TemplateTask[];
|
|
21
|
+
/** Get a template with all its associated tasks, ordered by position */
|
|
22
|
+
export declare function getTemplateWithTasks(id: string, db?: Database): TemplateWithTasks | null;
|
|
23
|
+
/** Get just the template tasks for a given template ID */
|
|
24
|
+
export declare function getTemplateTasks(templateId: string, db?: Database): TemplateTask[];
|
|
25
|
+
/**
|
|
26
|
+
* Create all tasks from a multi-task template.
|
|
27
|
+
* For single-task templates (no template_tasks rows), falls back to taskFromTemplate.
|
|
28
|
+
* Supports {variable} substitution in title and description.
|
|
29
|
+
* Wires task dependencies based on depends_on_positions.
|
|
30
|
+
*/
|
|
31
|
+
export declare function tasksFromTemplate(templateId: string, projectId: string, variables?: Record<string, string>, taskListId?: string, db?: Database): Task[];
|
|
19
32
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/db/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/db/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAItJ,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAyBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,CAiBtF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAM1E;AAED,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,CAG3D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAMjE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAsB3G;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,eAAe,CAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,eAAe,CAa7H;AAID,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,CAoC9G;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG,IAAI,CASxF;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,CAAC,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,EAAE,CAuDR"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type { RecapSummary } from "./db/audit.js";
|
|
|
15
15
|
export { gatherTrainingData } from "./lib/gatherer.js";
|
|
16
16
|
export { getActiveModel, setActiveModel, clearActiveModel, DEFAULT_MODEL, } from "./lib/model-config.js";
|
|
17
17
|
export { createWebhook, getWebhook, listWebhooks, deleteWebhook, dispatchWebhook } from "./db/webhooks.js";
|
|
18
|
-
export { createTemplate, getTemplate, listTemplates, deleteTemplate, updateTemplate, taskFromTemplate } from "./db/templates.js";
|
|
18
|
+
export { createTemplate, getTemplate, listTemplates, deleteTemplate, updateTemplate, taskFromTemplate, addTemplateTasks, getTemplateWithTasks, getTemplateTasks, tasksFromTemplate } from "./db/templates.js";
|
|
19
19
|
export { getChecklist, addChecklistItem, checkChecklistItem, updateChecklistItemText, removeChecklistItem, clearChecklist, getChecklistStats, } from "./db/checklists.js";
|
|
20
20
|
export { createHandoff, listHandoffs, getLatestHandoff } from "./db/handoffs.js";
|
|
21
21
|
export type { Handoff, CreateHandoffInput } from "./db/handoffs.js";
|
|
@@ -56,6 +56,6 @@ export type { TodosConfig, AgentConfig, CompletionGuardConfig } from "./lib/conf
|
|
|
56
56
|
export { checkCompletionGuard } from "./lib/completion-guard.js";
|
|
57
57
|
export { parseRecurrenceRule, isValidRecurrenceRule, nextOccurrence } from "./lib/recurrence.js";
|
|
58
58
|
export type { ParsedRule } from "./lib/recurrence.js";
|
|
59
|
-
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";
|
|
59
|
+
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, TemplateTask, TemplateTaskInput, TemplateWithTasks, Org, CreateOrgInput, } from "./types/index.js";
|
|
60
60
|
export { TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, ProjectNotFoundError, PlanNotFoundError, LockError, DependencyCycleError, AgentNotFoundError, TaskListNotFoundError, CompletionGuardError, } from "./types/index.js";
|
|
61
61
|
//# 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,SAAS,EACT,YAAY,EACZ,OAAO,EACP,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGzI,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG3G,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -828,6 +828,24 @@ var MIGRATIONS = [
|
|
|
828
828
|
);
|
|
829
829
|
|
|
830
830
|
INSERT OR IGNORE INTO _migrations (id) VALUES (36);
|
|
831
|
+
`,
|
|
832
|
+
`
|
|
833
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
834
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
835
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
836
|
+
position INTEGER NOT NULL,
|
|
837
|
+
title_pattern TEXT NOT NULL,
|
|
838
|
+
description TEXT,
|
|
839
|
+
priority TEXT DEFAULT 'medium',
|
|
840
|
+
tags TEXT DEFAULT '[]',
|
|
841
|
+
task_type TEXT,
|
|
842
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
843
|
+
metadata TEXT DEFAULT '{}',
|
|
844
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
845
|
+
);
|
|
846
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
847
|
+
|
|
848
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (37);
|
|
831
849
|
`
|
|
832
850
|
];
|
|
833
851
|
var _db = null;
|
|
@@ -944,6 +962,20 @@ function ensureSchema(db) {
|
|
|
944
962
|
metadata TEXT DEFAULT '{}',
|
|
945
963
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
946
964
|
)`);
|
|
965
|
+
ensureTable("template_tasks", `
|
|
966
|
+
CREATE TABLE template_tasks (
|
|
967
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
968
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
969
|
+
position INTEGER NOT NULL,
|
|
970
|
+
title_pattern TEXT NOT NULL,
|
|
971
|
+
description TEXT,
|
|
972
|
+
priority TEXT DEFAULT 'medium',
|
|
973
|
+
tags TEXT DEFAULT '[]',
|
|
974
|
+
task_type TEXT,
|
|
975
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
976
|
+
metadata TEXT DEFAULT '{}',
|
|
977
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
978
|
+
)`);
|
|
947
979
|
ensureTable("task_checklists", `
|
|
948
980
|
CREATE TABLE task_checklists (
|
|
949
981
|
id TEXT PRIMARY KEY,
|
|
@@ -1054,6 +1086,7 @@ function ensureSchema(db) {
|
|
|
1054
1086
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_source ON task_relationships(source_task_id)");
|
|
1055
1087
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_target ON task_relationships(target_task_id)");
|
|
1056
1088
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_type ON task_relationships(relationship_type)");
|
|
1089
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id)");
|
|
1057
1090
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_source ON kg_edges(source_id, source_type)");
|
|
1058
1091
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_target ON kg_edges(target_id, target_type)");
|
|
1059
1092
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_relation ON kg_edges(relation_type)");
|
|
@@ -1765,6 +1798,15 @@ function rowToTemplate(row) {
|
|
|
1765
1798
|
priority: row.priority || "medium"
|
|
1766
1799
|
};
|
|
1767
1800
|
}
|
|
1801
|
+
function rowToTemplateTask(row) {
|
|
1802
|
+
return {
|
|
1803
|
+
...row,
|
|
1804
|
+
tags: JSON.parse(row.tags || "[]"),
|
|
1805
|
+
depends_on_positions: JSON.parse(row.depends_on_positions || "[]"),
|
|
1806
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
1807
|
+
priority: row.priority || "medium"
|
|
1808
|
+
};
|
|
1809
|
+
}
|
|
1768
1810
|
function resolveTemplateId(id, d) {
|
|
1769
1811
|
return resolvePartialId(d, "task_templates", id);
|
|
1770
1812
|
}
|
|
@@ -1784,6 +1826,9 @@ function createTemplate(input, db) {
|
|
|
1784
1826
|
JSON.stringify(input.metadata || {}),
|
|
1785
1827
|
now()
|
|
1786
1828
|
]);
|
|
1829
|
+
if (input.tasks && input.tasks.length > 0) {
|
|
1830
|
+
addTemplateTasks(id, input.tasks, d);
|
|
1831
|
+
}
|
|
1787
1832
|
return getTemplate(id, d);
|
|
1788
1833
|
}
|
|
1789
1834
|
function getTemplate(id, db) {
|
|
@@ -1865,6 +1910,100 @@ function taskFromTemplate(templateId, overrides = {}, db) {
|
|
|
1865
1910
|
...overrides
|
|
1866
1911
|
};
|
|
1867
1912
|
}
|
|
1913
|
+
function addTemplateTasks(templateId, tasks, db) {
|
|
1914
|
+
const d = db || getDatabase();
|
|
1915
|
+
const template = getTemplate(templateId, d);
|
|
1916
|
+
if (!template)
|
|
1917
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
1918
|
+
d.run("DELETE FROM template_tasks WHERE template_id = ?", [templateId]);
|
|
1919
|
+
const results = [];
|
|
1920
|
+
for (let i = 0;i < tasks.length; i++) {
|
|
1921
|
+
const task = tasks[i];
|
|
1922
|
+
const id = uuid();
|
|
1923
|
+
d.run(`INSERT INTO template_tasks (id, template_id, position, title_pattern, description, priority, tags, task_type, depends_on_positions, metadata, created_at)
|
|
1924
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
1925
|
+
id,
|
|
1926
|
+
templateId,
|
|
1927
|
+
i,
|
|
1928
|
+
task.title_pattern,
|
|
1929
|
+
task.description || null,
|
|
1930
|
+
task.priority || "medium",
|
|
1931
|
+
JSON.stringify(task.tags || []),
|
|
1932
|
+
task.task_type || null,
|
|
1933
|
+
JSON.stringify(task.depends_on || []),
|
|
1934
|
+
JSON.stringify(task.metadata || {}),
|
|
1935
|
+
now()
|
|
1936
|
+
]);
|
|
1937
|
+
const row = d.query("SELECT * FROM template_tasks WHERE id = ?").get(id);
|
|
1938
|
+
if (row)
|
|
1939
|
+
results.push(rowToTemplateTask(row));
|
|
1940
|
+
}
|
|
1941
|
+
return results;
|
|
1942
|
+
}
|
|
1943
|
+
function getTemplateWithTasks(id, db) {
|
|
1944
|
+
const d = db || getDatabase();
|
|
1945
|
+
const template = getTemplate(id, d);
|
|
1946
|
+
if (!template)
|
|
1947
|
+
return null;
|
|
1948
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(template.id);
|
|
1949
|
+
const tasks = rows.map(rowToTemplateTask);
|
|
1950
|
+
return { ...template, tasks };
|
|
1951
|
+
}
|
|
1952
|
+
function getTemplateTasks(templateId, db) {
|
|
1953
|
+
const d = db || getDatabase();
|
|
1954
|
+
const resolved = resolveTemplateId(templateId, d);
|
|
1955
|
+
if (!resolved)
|
|
1956
|
+
return [];
|
|
1957
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(resolved);
|
|
1958
|
+
return rows.map(rowToTemplateTask);
|
|
1959
|
+
}
|
|
1960
|
+
function tasksFromTemplate(templateId, projectId, variables, taskListId, db) {
|
|
1961
|
+
const d = db || getDatabase();
|
|
1962
|
+
const template = getTemplateWithTasks(templateId, d);
|
|
1963
|
+
if (!template)
|
|
1964
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
1965
|
+
if (template.tasks.length === 0) {
|
|
1966
|
+
const input = taskFromTemplate(templateId, { project_id: projectId, task_list_id: taskListId }, d);
|
|
1967
|
+
const task = createTask(input, d);
|
|
1968
|
+
return [task];
|
|
1969
|
+
}
|
|
1970
|
+
const createdTasks = [];
|
|
1971
|
+
const positionToId = new Map;
|
|
1972
|
+
for (const tt of template.tasks) {
|
|
1973
|
+
let title = tt.title_pattern;
|
|
1974
|
+
let desc = tt.description;
|
|
1975
|
+
if (variables) {
|
|
1976
|
+
for (const [key, val] of Object.entries(variables)) {
|
|
1977
|
+
title = title.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
1978
|
+
if (desc)
|
|
1979
|
+
desc = desc.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
1980
|
+
}
|
|
1981
|
+
}
|
|
1982
|
+
const task = createTask({
|
|
1983
|
+
title,
|
|
1984
|
+
description: desc ?? undefined,
|
|
1985
|
+
priority: tt.priority,
|
|
1986
|
+
tags: tt.tags,
|
|
1987
|
+
task_type: tt.task_type ?? undefined,
|
|
1988
|
+
project_id: projectId,
|
|
1989
|
+
task_list_id: taskListId,
|
|
1990
|
+
metadata: tt.metadata
|
|
1991
|
+
}, d);
|
|
1992
|
+
createdTasks.push(task);
|
|
1993
|
+
positionToId.set(tt.position, task.id);
|
|
1994
|
+
}
|
|
1995
|
+
for (const tt of template.tasks) {
|
|
1996
|
+
const deps = tt.depends_on_positions;
|
|
1997
|
+
for (const depPos of deps) {
|
|
1998
|
+
const taskId = positionToId.get(tt.position);
|
|
1999
|
+
const depId = positionToId.get(depPos);
|
|
2000
|
+
if (taskId && depId) {
|
|
2001
|
+
addDependency(taskId, depId, d);
|
|
2002
|
+
}
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2005
|
+
return createdTasks;
|
|
2006
|
+
}
|
|
1868
2007
|
|
|
1869
2008
|
// src/db/checklists.ts
|
|
1870
2009
|
function rowToItem(row) {
|
|
@@ -14594,6 +14733,24 @@ var PG_MIGRATIONS = [
|
|
|
14594
14733
|
);
|
|
14595
14734
|
|
|
14596
14735
|
INSERT INTO _migrations (id) VALUES (36) ON CONFLICT DO NOTHING;
|
|
14736
|
+
`,
|
|
14737
|
+
`
|
|
14738
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
14739
|
+
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
|
|
14740
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
14741
|
+
position INTEGER NOT NULL,
|
|
14742
|
+
title_pattern TEXT NOT NULL,
|
|
14743
|
+
description TEXT,
|
|
14744
|
+
priority TEXT DEFAULT 'medium',
|
|
14745
|
+
tags TEXT DEFAULT '[]',
|
|
14746
|
+
task_type TEXT,
|
|
14747
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
14748
|
+
metadata TEXT DEFAULT '{}',
|
|
14749
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
14750
|
+
);
|
|
14751
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
14752
|
+
|
|
14753
|
+
INSERT INTO _migrations (id) VALUES (37) ON CONFLICT DO NOTHING;
|
|
14597
14754
|
`
|
|
14598
14755
|
];
|
|
14599
14756
|
|
|
@@ -15152,6 +15309,7 @@ export {
|
|
|
15152
15309
|
updateAgent,
|
|
15153
15310
|
unlockTask,
|
|
15154
15311
|
unarchiveAgent,
|
|
15312
|
+
tasksFromTemplate,
|
|
15155
15313
|
taskFromTemplate,
|
|
15156
15314
|
tagToPriority,
|
|
15157
15315
|
syncWithAgents,
|
|
@@ -15213,6 +15371,8 @@ export {
|
|
|
15213
15371
|
isAgentConflict,
|
|
15214
15372
|
getWebhook,
|
|
15215
15373
|
getTraceStats,
|
|
15374
|
+
getTemplateWithTasks,
|
|
15375
|
+
getTemplateTasks,
|
|
15216
15376
|
getTemplate,
|
|
15217
15377
|
getTasksChangedSince,
|
|
15218
15378
|
getTaskWithRelations,
|
|
@@ -15317,6 +15477,7 @@ export {
|
|
|
15317
15477
|
autoDetectFileRelationships,
|
|
15318
15478
|
archiveAgent,
|
|
15319
15479
|
applyPgMigrations,
|
|
15480
|
+
addTemplateTasks,
|
|
15320
15481
|
addTaskRelationship,
|
|
15321
15482
|
addTaskFile,
|
|
15322
15483
|
addProjectSource,
|
package/dist/mcp/index.js
CHANGED
|
@@ -10856,6 +10856,20 @@ function ensureSchema(db) {
|
|
|
10856
10856
|
metadata TEXT DEFAULT '{}',
|
|
10857
10857
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
10858
10858
|
)`);
|
|
10859
|
+
ensureTable("template_tasks", `
|
|
10860
|
+
CREATE TABLE template_tasks (
|
|
10861
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
10862
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
10863
|
+
position INTEGER NOT NULL,
|
|
10864
|
+
title_pattern TEXT NOT NULL,
|
|
10865
|
+
description TEXT,
|
|
10866
|
+
priority TEXT DEFAULT 'medium',
|
|
10867
|
+
tags TEXT DEFAULT '[]',
|
|
10868
|
+
task_type TEXT,
|
|
10869
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
10870
|
+
metadata TEXT DEFAULT '{}',
|
|
10871
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
10872
|
+
)`);
|
|
10859
10873
|
ensureTable("task_checklists", `
|
|
10860
10874
|
CREATE TABLE task_checklists (
|
|
10861
10875
|
id TEXT PRIMARY KEY,
|
|
@@ -10966,6 +10980,7 @@ function ensureSchema(db) {
|
|
|
10966
10980
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_source ON task_relationships(source_task_id)");
|
|
10967
10981
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_target ON task_relationships(target_task_id)");
|
|
10968
10982
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_type ON task_relationships(relationship_type)");
|
|
10983
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id)");
|
|
10969
10984
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_source ON kg_edges(source_id, source_type)");
|
|
10970
10985
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_target ON kg_edges(target_id, target_type)");
|
|
10971
10986
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_relation ON kg_edges(relation_type)");
|
|
@@ -11609,6 +11624,24 @@ var init_database = __esm(() => {
|
|
|
11609
11624
|
);
|
|
11610
11625
|
|
|
11611
11626
|
INSERT OR IGNORE INTO _migrations (id) VALUES (36);
|
|
11627
|
+
`,
|
|
11628
|
+
`
|
|
11629
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
11630
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
11631
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
11632
|
+
position INTEGER NOT NULL,
|
|
11633
|
+
title_pattern TEXT NOT NULL,
|
|
11634
|
+
description TEXT,
|
|
11635
|
+
priority TEXT DEFAULT 'medium',
|
|
11636
|
+
tags TEXT DEFAULT '[]',
|
|
11637
|
+
task_type TEXT,
|
|
11638
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
11639
|
+
metadata TEXT DEFAULT '{}',
|
|
11640
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
11641
|
+
);
|
|
11642
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
11643
|
+
|
|
11644
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (37);
|
|
11612
11645
|
`
|
|
11613
11646
|
];
|
|
11614
11647
|
});
|
|
@@ -12098,11 +12131,15 @@ var init_webhooks = __esm(() => {
|
|
|
12098
12131
|
var exports_templates = {};
|
|
12099
12132
|
__export(exports_templates, {
|
|
12100
12133
|
updateTemplate: () => updateTemplate,
|
|
12134
|
+
tasksFromTemplate: () => tasksFromTemplate,
|
|
12101
12135
|
taskFromTemplate: () => taskFromTemplate,
|
|
12102
12136
|
listTemplates: () => listTemplates,
|
|
12137
|
+
getTemplateWithTasks: () => getTemplateWithTasks,
|
|
12138
|
+
getTemplateTasks: () => getTemplateTasks,
|
|
12103
12139
|
getTemplate: () => getTemplate,
|
|
12104
12140
|
deleteTemplate: () => deleteTemplate,
|
|
12105
|
-
createTemplate: () => createTemplate
|
|
12141
|
+
createTemplate: () => createTemplate,
|
|
12142
|
+
addTemplateTasks: () => addTemplateTasks
|
|
12106
12143
|
});
|
|
12107
12144
|
function rowToTemplate(row) {
|
|
12108
12145
|
return {
|
|
@@ -12112,6 +12149,15 @@ function rowToTemplate(row) {
|
|
|
12112
12149
|
priority: row.priority || "medium"
|
|
12113
12150
|
};
|
|
12114
12151
|
}
|
|
12152
|
+
function rowToTemplateTask(row) {
|
|
12153
|
+
return {
|
|
12154
|
+
...row,
|
|
12155
|
+
tags: JSON.parse(row.tags || "[]"),
|
|
12156
|
+
depends_on_positions: JSON.parse(row.depends_on_positions || "[]"),
|
|
12157
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
12158
|
+
priority: row.priority || "medium"
|
|
12159
|
+
};
|
|
12160
|
+
}
|
|
12115
12161
|
function resolveTemplateId(id, d) {
|
|
12116
12162
|
return resolvePartialId(d, "task_templates", id);
|
|
12117
12163
|
}
|
|
@@ -12131,6 +12177,9 @@ function createTemplate(input, db) {
|
|
|
12131
12177
|
JSON.stringify(input.metadata || {}),
|
|
12132
12178
|
now()
|
|
12133
12179
|
]);
|
|
12180
|
+
if (input.tasks && input.tasks.length > 0) {
|
|
12181
|
+
addTemplateTasks(id, input.tasks, d);
|
|
12182
|
+
}
|
|
12134
12183
|
return getTemplate(id, d);
|
|
12135
12184
|
}
|
|
12136
12185
|
function getTemplate(id, db) {
|
|
@@ -12212,8 +12261,103 @@ function taskFromTemplate(templateId, overrides = {}, db) {
|
|
|
12212
12261
|
...overrides
|
|
12213
12262
|
};
|
|
12214
12263
|
}
|
|
12264
|
+
function addTemplateTasks(templateId, tasks, db) {
|
|
12265
|
+
const d = db || getDatabase();
|
|
12266
|
+
const template = getTemplate(templateId, d);
|
|
12267
|
+
if (!template)
|
|
12268
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
12269
|
+
d.run("DELETE FROM template_tasks WHERE template_id = ?", [templateId]);
|
|
12270
|
+
const results = [];
|
|
12271
|
+
for (let i = 0;i < tasks.length; i++) {
|
|
12272
|
+
const task = tasks[i];
|
|
12273
|
+
const id = uuid();
|
|
12274
|
+
d.run(`INSERT INTO template_tasks (id, template_id, position, title_pattern, description, priority, tags, task_type, depends_on_positions, metadata, created_at)
|
|
12275
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
12276
|
+
id,
|
|
12277
|
+
templateId,
|
|
12278
|
+
i,
|
|
12279
|
+
task.title_pattern,
|
|
12280
|
+
task.description || null,
|
|
12281
|
+
task.priority || "medium",
|
|
12282
|
+
JSON.stringify(task.tags || []),
|
|
12283
|
+
task.task_type || null,
|
|
12284
|
+
JSON.stringify(task.depends_on || []),
|
|
12285
|
+
JSON.stringify(task.metadata || {}),
|
|
12286
|
+
now()
|
|
12287
|
+
]);
|
|
12288
|
+
const row = d.query("SELECT * FROM template_tasks WHERE id = ?").get(id);
|
|
12289
|
+
if (row)
|
|
12290
|
+
results.push(rowToTemplateTask(row));
|
|
12291
|
+
}
|
|
12292
|
+
return results;
|
|
12293
|
+
}
|
|
12294
|
+
function getTemplateWithTasks(id, db) {
|
|
12295
|
+
const d = db || getDatabase();
|
|
12296
|
+
const template = getTemplate(id, d);
|
|
12297
|
+
if (!template)
|
|
12298
|
+
return null;
|
|
12299
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(template.id);
|
|
12300
|
+
const tasks = rows.map(rowToTemplateTask);
|
|
12301
|
+
return { ...template, tasks };
|
|
12302
|
+
}
|
|
12303
|
+
function getTemplateTasks(templateId, db) {
|
|
12304
|
+
const d = db || getDatabase();
|
|
12305
|
+
const resolved = resolveTemplateId(templateId, d);
|
|
12306
|
+
if (!resolved)
|
|
12307
|
+
return [];
|
|
12308
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(resolved);
|
|
12309
|
+
return rows.map(rowToTemplateTask);
|
|
12310
|
+
}
|
|
12311
|
+
function tasksFromTemplate(templateId, projectId, variables, taskListId, db) {
|
|
12312
|
+
const d = db || getDatabase();
|
|
12313
|
+
const template = getTemplateWithTasks(templateId, d);
|
|
12314
|
+
if (!template)
|
|
12315
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
12316
|
+
if (template.tasks.length === 0) {
|
|
12317
|
+
const input = taskFromTemplate(templateId, { project_id: projectId, task_list_id: taskListId }, d);
|
|
12318
|
+
const task = createTask(input, d);
|
|
12319
|
+
return [task];
|
|
12320
|
+
}
|
|
12321
|
+
const createdTasks = [];
|
|
12322
|
+
const positionToId = new Map;
|
|
12323
|
+
for (const tt of template.tasks) {
|
|
12324
|
+
let title = tt.title_pattern;
|
|
12325
|
+
let desc = tt.description;
|
|
12326
|
+
if (variables) {
|
|
12327
|
+
for (const [key, val] of Object.entries(variables)) {
|
|
12328
|
+
title = title.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
12329
|
+
if (desc)
|
|
12330
|
+
desc = desc.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
12331
|
+
}
|
|
12332
|
+
}
|
|
12333
|
+
const task = createTask({
|
|
12334
|
+
title,
|
|
12335
|
+
description: desc ?? undefined,
|
|
12336
|
+
priority: tt.priority,
|
|
12337
|
+
tags: tt.tags,
|
|
12338
|
+
task_type: tt.task_type ?? undefined,
|
|
12339
|
+
project_id: projectId,
|
|
12340
|
+
task_list_id: taskListId,
|
|
12341
|
+
metadata: tt.metadata
|
|
12342
|
+
}, d);
|
|
12343
|
+
createdTasks.push(task);
|
|
12344
|
+
positionToId.set(tt.position, task.id);
|
|
12345
|
+
}
|
|
12346
|
+
for (const tt of template.tasks) {
|
|
12347
|
+
const deps = tt.depends_on_positions;
|
|
12348
|
+
for (const depPos of deps) {
|
|
12349
|
+
const taskId = positionToId.get(tt.position);
|
|
12350
|
+
const depId = positionToId.get(depPos);
|
|
12351
|
+
if (taskId && depId) {
|
|
12352
|
+
addDependency(taskId, depId, d);
|
|
12353
|
+
}
|
|
12354
|
+
}
|
|
12355
|
+
}
|
|
12356
|
+
return createdTasks;
|
|
12357
|
+
}
|
|
12215
12358
|
var init_templates = __esm(() => {
|
|
12216
12359
|
init_database();
|
|
12360
|
+
init_tasks();
|
|
12217
12361
|
});
|
|
12218
12362
|
|
|
12219
12363
|
// src/db/checklists.ts
|
|
@@ -15984,6 +16128,24 @@ var init_pg_migrations = __esm(() => {
|
|
|
15984
16128
|
);
|
|
15985
16129
|
|
|
15986
16130
|
INSERT INTO _migrations (id) VALUES (36) ON CONFLICT DO NOTHING;
|
|
16131
|
+
`,
|
|
16132
|
+
`
|
|
16133
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
16134
|
+
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
|
|
16135
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
16136
|
+
position INTEGER NOT NULL,
|
|
16137
|
+
title_pattern TEXT NOT NULL,
|
|
16138
|
+
description TEXT,
|
|
16139
|
+
priority TEXT DEFAULT 'medium',
|
|
16140
|
+
tags TEXT DEFAULT '[]',
|
|
16141
|
+
task_type TEXT,
|
|
16142
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
16143
|
+
metadata TEXT DEFAULT '{}',
|
|
16144
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
16145
|
+
);
|
|
16146
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
16147
|
+
|
|
16148
|
+
INSERT INTO _migrations (id) VALUES (37) ON CONFLICT DO NOTHING;
|
|
15987
16149
|
`
|
|
15988
16150
|
];
|
|
15989
16151
|
});
|
|
@@ -22648,19 +22810,31 @@ if (shouldRegisterTool("delete_webhook")) {
|
|
|
22648
22810
|
});
|
|
22649
22811
|
}
|
|
22650
22812
|
if (shouldRegisterTool("create_template")) {
|
|
22651
|
-
server.tool("create_template", "Create a reusable task template.", {
|
|
22813
|
+
server.tool("create_template", "Create a reusable task template. Optionally include a tasks array to define a multi-task template with dependencies and variable placeholders ({name} syntax).", {
|
|
22652
22814
|
name: exports_external.string(),
|
|
22653
22815
|
title_pattern: exports_external.string(),
|
|
22654
22816
|
description: exports_external.string().optional(),
|
|
22655
22817
|
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
22656
22818
|
tags: exports_external.array(exports_external.string()).optional(),
|
|
22657
22819
|
project_id: exports_external.string().optional(),
|
|
22658
|
-
plan_id: exports_external.string().optional()
|
|
22820
|
+
plan_id: exports_external.string().optional(),
|
|
22821
|
+
tasks: exports_external.array(exports_external.object({
|
|
22822
|
+
title_pattern: exports_external.string().describe("Title pattern with optional {variable} placeholders"),
|
|
22823
|
+
description: exports_external.string().optional(),
|
|
22824
|
+
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
22825
|
+
tags: exports_external.array(exports_external.string()).optional(),
|
|
22826
|
+
task_type: exports_external.string().optional(),
|
|
22827
|
+
depends_on: exports_external.array(exports_external.number()).optional().describe("Position indices (0-based) of tasks this task depends on"),
|
|
22828
|
+
metadata: exports_external.record(exports_external.unknown()).optional()
|
|
22829
|
+
})).optional().describe("Multi-task template: ordered list of tasks to create together with dependencies")
|
|
22659
22830
|
}, async (params) => {
|
|
22660
22831
|
try {
|
|
22661
|
-
const { createTemplate: createTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
22832
|
+
const { createTemplate: createTemplate2, getTemplateWithTasks: getTemplateWithTasks2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
22662
22833
|
const t = createTemplate2(params);
|
|
22663
|
-
|
|
22834
|
+
const withTasks = getTemplateWithTasks2(t.id);
|
|
22835
|
+
const taskCount = withTasks?.tasks.length ?? 0;
|
|
22836
|
+
const taskInfo = taskCount > 0 ? ` | ${taskCount} task(s)` : "";
|
|
22837
|
+
return { content: [{ type: "text", text: `Template created: ${t.id.slice(0, 8)} | ${t.name} | "${t.title_pattern}"${taskInfo}` }] };
|
|
22664
22838
|
} catch (e) {
|
|
22665
22839
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
22666
22840
|
}
|
|
@@ -22683,23 +22857,34 @@ ${text}` }] };
|
|
|
22683
22857
|
});
|
|
22684
22858
|
}
|
|
22685
22859
|
if (shouldRegisterTool("create_task_from_template")) {
|
|
22686
|
-
server.tool("create_task_from_template", "Create
|
|
22860
|
+
server.tool("create_task_from_template", "Create task(s) from a template. For multi-task templates, creates all tasks with dependencies wired. Supports {variable} substitution in titles/descriptions.", {
|
|
22687
22861
|
template_id: exports_external.string(),
|
|
22688
|
-
title: exports_external.string().optional(),
|
|
22689
|
-
description: exports_external.string().optional(),
|
|
22862
|
+
title: exports_external.string().optional().describe("Override title (single-task templates only)"),
|
|
22863
|
+
description: exports_external.string().optional().describe("Override description (single-task templates only)"),
|
|
22690
22864
|
priority: exports_external.enum(["low", "medium", "high", "critical"]).optional(),
|
|
22691
22865
|
assigned_to: exports_external.string().optional(),
|
|
22692
|
-
project_id: exports_external.string().optional()
|
|
22866
|
+
project_id: exports_external.string().optional(),
|
|
22867
|
+
task_list_id: exports_external.string().optional(),
|
|
22868
|
+
variables: exports_external.record(exports_external.string()).optional().describe("Variable substitution map for {name} placeholders in multi-task templates")
|
|
22693
22869
|
}, async (params) => {
|
|
22694
22870
|
try {
|
|
22695
|
-
const { taskFromTemplate: taskFromTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
22871
|
+
const { taskFromTemplate: taskFromTemplate2, getTemplateWithTasks: getTemplateWithTasks2, tasksFromTemplate: tasksFromTemplate2 } = await Promise.resolve().then(() => (init_templates(), exports_templates));
|
|
22696
22872
|
const resolvedTemplateId = resolveId(params.template_id, "task_templates");
|
|
22873
|
+
const templateWithTasks = getTemplateWithTasks2(resolvedTemplateId);
|
|
22874
|
+
if (templateWithTasks && templateWithTasks.tasks.length > 0) {
|
|
22875
|
+
const tasks = tasksFromTemplate2(resolvedTemplateId, params.project_id || templateWithTasks.project_id || "", params.variables, params.task_list_id);
|
|
22876
|
+
const text = tasks.map((t) => `${t.id.slice(0, 8)} | ${t.priority} | ${t.title}`).join(`
|
|
22877
|
+
`);
|
|
22878
|
+
return { content: [{ type: "text", text: `${tasks.length} task(s) created from template:
|
|
22879
|
+
${text}` }] };
|
|
22880
|
+
}
|
|
22697
22881
|
const input = taskFromTemplate2(resolvedTemplateId, {
|
|
22698
22882
|
title: params.title,
|
|
22699
22883
|
description: params.description,
|
|
22700
22884
|
priority: params.priority,
|
|
22701
22885
|
assigned_to: params.assigned_to,
|
|
22702
|
-
project_id: params.project_id
|
|
22886
|
+
project_id: params.project_id,
|
|
22887
|
+
task_list_id: params.task_list_id
|
|
22703
22888
|
});
|
|
22704
22889
|
const task = createTask(input);
|
|
22705
22890
|
return { content: [{ type: "text", text: `Task created from template:
|
|
@@ -24087,13 +24272,15 @@ if (shouldRegisterTool("describe_tools")) {
|
|
|
24087
24272
|
delete_webhook: `Delete a webhook by ID.
|
|
24088
24273
|
Params: id(string, req)
|
|
24089
24274
|
Example: {id: 'a1b2c3d4'}`,
|
|
24090
|
-
create_template: `Create a reusable task template.
|
|
24091
|
-
Params: name(string, req), title_pattern(string, req
|
|
24092
|
-
Example: {name: 'Bug Report', title_pattern: 'Bug: {description}', priority: 'high', tags: ['bug']}
|
|
24275
|
+
create_template: `Create a reusable task template. Supports multi-task templates with dependencies.
|
|
24276
|
+
Params: name(string, req), title_pattern(string, req), description(string), priority(low|medium|high|critical), tags(string[]), project_id(string), plan_id(string), tasks(array of {title_pattern, description, priority, tags, task_type, depends_on(number[]), metadata})
|
|
24277
|
+
Example single: {name: 'Bug Report', title_pattern: 'Bug: {description}', priority: 'high', tags: ['bug']}
|
|
24278
|
+
Example multi: {name: 'Feature', title_pattern: 'Feature: {name}', tasks: [{title_pattern: 'Design {name}'}, {title_pattern: 'Implement {name}', depends_on: [0]}, {title_pattern: 'Test {name}', depends_on: [1]}]}`,
|
|
24093
24279
|
list_templates: "List all task templates. No params.",
|
|
24094
|
-
create_task_from_template: `Create
|
|
24095
|
-
Params: template_id(string, req), title(string), description(string), priority(low|medium|high|critical), assigned_to(string), project_id(string)
|
|
24096
|
-
Example: {template_id: 'a1b2c3d4', assigned_to: 'maximus'}
|
|
24280
|
+
create_task_from_template: `Create task(s) from a template. Multi-task templates create all tasks with dependencies wired. Supports {variable} substitution.
|
|
24281
|
+
Params: template_id(string, req), title(string \u2014 single-task override), description(string), priority(low|medium|high|critical), assigned_to(string), project_id(string), task_list_id(string), variables(Record<string,string> \u2014 {name} substitution)
|
|
24282
|
+
Example single: {template_id: 'a1b2c3d4', assigned_to: 'maximus'}
|
|
24283
|
+
Example multi: {template_id: 'a1b2c3d4', project_id: 'proj1', variables: {name: 'OAuth login'}}`,
|
|
24097
24284
|
delete_template: `Delete a task template.
|
|
24098
24285
|
Params: id(string, req)
|
|
24099
24286
|
Example: {id: 'a1b2c3d4'}`,
|
package/dist/server/index.js
CHANGED
|
@@ -280,6 +280,20 @@ function ensureSchema(db) {
|
|
|
280
280
|
metadata TEXT DEFAULT '{}',
|
|
281
281
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
282
282
|
)`);
|
|
283
|
+
ensureTable("template_tasks", `
|
|
284
|
+
CREATE TABLE template_tasks (
|
|
285
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
286
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
287
|
+
position INTEGER NOT NULL,
|
|
288
|
+
title_pattern TEXT NOT NULL,
|
|
289
|
+
description TEXT,
|
|
290
|
+
priority TEXT DEFAULT 'medium',
|
|
291
|
+
tags TEXT DEFAULT '[]',
|
|
292
|
+
task_type TEXT,
|
|
293
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
294
|
+
metadata TEXT DEFAULT '{}',
|
|
295
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
296
|
+
)`);
|
|
283
297
|
ensureTable("task_checklists", `
|
|
284
298
|
CREATE TABLE task_checklists (
|
|
285
299
|
id TEXT PRIMARY KEY,
|
|
@@ -390,6 +404,7 @@ function ensureSchema(db) {
|
|
|
390
404
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_source ON task_relationships(source_task_id)");
|
|
391
405
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_target ON task_relationships(target_task_id)");
|
|
392
406
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_rel_type ON task_relationships(relationship_type)");
|
|
407
|
+
ensureIndex("CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id)");
|
|
393
408
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_source ON kg_edges(source_id, source_type)");
|
|
394
409
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_target ON kg_edges(target_id, target_type)");
|
|
395
410
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_kg_relation ON kg_edges(relation_type)");
|
|
@@ -1024,6 +1039,24 @@ var init_database = __esm(() => {
|
|
|
1024
1039
|
);
|
|
1025
1040
|
|
|
1026
1041
|
INSERT OR IGNORE INTO _migrations (id) VALUES (36);
|
|
1042
|
+
`,
|
|
1043
|
+
`
|
|
1044
|
+
CREATE TABLE IF NOT EXISTS template_tasks (
|
|
1045
|
+
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
1046
|
+
template_id TEXT NOT NULL REFERENCES task_templates(id) ON DELETE CASCADE,
|
|
1047
|
+
position INTEGER NOT NULL,
|
|
1048
|
+
title_pattern TEXT NOT NULL,
|
|
1049
|
+
description TEXT,
|
|
1050
|
+
priority TEXT DEFAULT 'medium',
|
|
1051
|
+
tags TEXT DEFAULT '[]',
|
|
1052
|
+
task_type TEXT,
|
|
1053
|
+
depends_on_positions TEXT DEFAULT '[]',
|
|
1054
|
+
metadata TEXT DEFAULT '{}',
|
|
1055
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
1056
|
+
);
|
|
1057
|
+
CREATE INDEX IF NOT EXISTS idx_template_tasks_template ON template_tasks(template_id);
|
|
1058
|
+
|
|
1059
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (37);
|
|
1027
1060
|
`
|
|
1028
1061
|
];
|
|
1029
1062
|
});
|
|
@@ -1500,11 +1533,15 @@ var init_webhooks = __esm(() => {
|
|
|
1500
1533
|
var exports_templates = {};
|
|
1501
1534
|
__export(exports_templates, {
|
|
1502
1535
|
updateTemplate: () => updateTemplate,
|
|
1536
|
+
tasksFromTemplate: () => tasksFromTemplate,
|
|
1503
1537
|
taskFromTemplate: () => taskFromTemplate,
|
|
1504
1538
|
listTemplates: () => listTemplates,
|
|
1539
|
+
getTemplateWithTasks: () => getTemplateWithTasks,
|
|
1540
|
+
getTemplateTasks: () => getTemplateTasks,
|
|
1505
1541
|
getTemplate: () => getTemplate,
|
|
1506
1542
|
deleteTemplate: () => deleteTemplate,
|
|
1507
|
-
createTemplate: () => createTemplate
|
|
1543
|
+
createTemplate: () => createTemplate,
|
|
1544
|
+
addTemplateTasks: () => addTemplateTasks
|
|
1508
1545
|
});
|
|
1509
1546
|
function rowToTemplate(row) {
|
|
1510
1547
|
return {
|
|
@@ -1514,6 +1551,15 @@ function rowToTemplate(row) {
|
|
|
1514
1551
|
priority: row.priority || "medium"
|
|
1515
1552
|
};
|
|
1516
1553
|
}
|
|
1554
|
+
function rowToTemplateTask(row) {
|
|
1555
|
+
return {
|
|
1556
|
+
...row,
|
|
1557
|
+
tags: JSON.parse(row.tags || "[]"),
|
|
1558
|
+
depends_on_positions: JSON.parse(row.depends_on_positions || "[]"),
|
|
1559
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
1560
|
+
priority: row.priority || "medium"
|
|
1561
|
+
};
|
|
1562
|
+
}
|
|
1517
1563
|
function resolveTemplateId(id, d) {
|
|
1518
1564
|
return resolvePartialId(d, "task_templates", id);
|
|
1519
1565
|
}
|
|
@@ -1533,6 +1579,9 @@ function createTemplate(input, db) {
|
|
|
1533
1579
|
JSON.stringify(input.metadata || {}),
|
|
1534
1580
|
now()
|
|
1535
1581
|
]);
|
|
1582
|
+
if (input.tasks && input.tasks.length > 0) {
|
|
1583
|
+
addTemplateTasks(id, input.tasks, d);
|
|
1584
|
+
}
|
|
1536
1585
|
return getTemplate(id, d);
|
|
1537
1586
|
}
|
|
1538
1587
|
function getTemplate(id, db) {
|
|
@@ -1614,8 +1663,103 @@ function taskFromTemplate(templateId, overrides = {}, db) {
|
|
|
1614
1663
|
...overrides
|
|
1615
1664
|
};
|
|
1616
1665
|
}
|
|
1666
|
+
function addTemplateTasks(templateId, tasks, db) {
|
|
1667
|
+
const d = db || getDatabase();
|
|
1668
|
+
const template = getTemplate(templateId, d);
|
|
1669
|
+
if (!template)
|
|
1670
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
1671
|
+
d.run("DELETE FROM template_tasks WHERE template_id = ?", [templateId]);
|
|
1672
|
+
const results = [];
|
|
1673
|
+
for (let i = 0;i < tasks.length; i++) {
|
|
1674
|
+
const task = tasks[i];
|
|
1675
|
+
const id = uuid();
|
|
1676
|
+
d.run(`INSERT INTO template_tasks (id, template_id, position, title_pattern, description, priority, tags, task_type, depends_on_positions, metadata, created_at)
|
|
1677
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
1678
|
+
id,
|
|
1679
|
+
templateId,
|
|
1680
|
+
i,
|
|
1681
|
+
task.title_pattern,
|
|
1682
|
+
task.description || null,
|
|
1683
|
+
task.priority || "medium",
|
|
1684
|
+
JSON.stringify(task.tags || []),
|
|
1685
|
+
task.task_type || null,
|
|
1686
|
+
JSON.stringify(task.depends_on || []),
|
|
1687
|
+
JSON.stringify(task.metadata || {}),
|
|
1688
|
+
now()
|
|
1689
|
+
]);
|
|
1690
|
+
const row = d.query("SELECT * FROM template_tasks WHERE id = ?").get(id);
|
|
1691
|
+
if (row)
|
|
1692
|
+
results.push(rowToTemplateTask(row));
|
|
1693
|
+
}
|
|
1694
|
+
return results;
|
|
1695
|
+
}
|
|
1696
|
+
function getTemplateWithTasks(id, db) {
|
|
1697
|
+
const d = db || getDatabase();
|
|
1698
|
+
const template = getTemplate(id, d);
|
|
1699
|
+
if (!template)
|
|
1700
|
+
return null;
|
|
1701
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(template.id);
|
|
1702
|
+
const tasks = rows.map(rowToTemplateTask);
|
|
1703
|
+
return { ...template, tasks };
|
|
1704
|
+
}
|
|
1705
|
+
function getTemplateTasks(templateId, db) {
|
|
1706
|
+
const d = db || getDatabase();
|
|
1707
|
+
const resolved = resolveTemplateId(templateId, d);
|
|
1708
|
+
if (!resolved)
|
|
1709
|
+
return [];
|
|
1710
|
+
const rows = d.query("SELECT * FROM template_tasks WHERE template_id = ? ORDER BY position").all(resolved);
|
|
1711
|
+
return rows.map(rowToTemplateTask);
|
|
1712
|
+
}
|
|
1713
|
+
function tasksFromTemplate(templateId, projectId, variables, taskListId, db) {
|
|
1714
|
+
const d = db || getDatabase();
|
|
1715
|
+
const template = getTemplateWithTasks(templateId, d);
|
|
1716
|
+
if (!template)
|
|
1717
|
+
throw new Error(`Template not found: ${templateId}`);
|
|
1718
|
+
if (template.tasks.length === 0) {
|
|
1719
|
+
const input = taskFromTemplate(templateId, { project_id: projectId, task_list_id: taskListId }, d);
|
|
1720
|
+
const task = createTask(input, d);
|
|
1721
|
+
return [task];
|
|
1722
|
+
}
|
|
1723
|
+
const createdTasks = [];
|
|
1724
|
+
const positionToId = new Map;
|
|
1725
|
+
for (const tt of template.tasks) {
|
|
1726
|
+
let title = tt.title_pattern;
|
|
1727
|
+
let desc = tt.description;
|
|
1728
|
+
if (variables) {
|
|
1729
|
+
for (const [key, val] of Object.entries(variables)) {
|
|
1730
|
+
title = title.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
1731
|
+
if (desc)
|
|
1732
|
+
desc = desc.replace(new RegExp(`\\{${key}\\}`, "g"), val);
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
const task = createTask({
|
|
1736
|
+
title,
|
|
1737
|
+
description: desc ?? undefined,
|
|
1738
|
+
priority: tt.priority,
|
|
1739
|
+
tags: tt.tags,
|
|
1740
|
+
task_type: tt.task_type ?? undefined,
|
|
1741
|
+
project_id: projectId,
|
|
1742
|
+
task_list_id: taskListId,
|
|
1743
|
+
metadata: tt.metadata
|
|
1744
|
+
}, d);
|
|
1745
|
+
createdTasks.push(task);
|
|
1746
|
+
positionToId.set(tt.position, task.id);
|
|
1747
|
+
}
|
|
1748
|
+
for (const tt of template.tasks) {
|
|
1749
|
+
const deps = tt.depends_on_positions;
|
|
1750
|
+
for (const depPos of deps) {
|
|
1751
|
+
const taskId = positionToId.get(tt.position);
|
|
1752
|
+
const depId = positionToId.get(depPos);
|
|
1753
|
+
if (taskId && depId) {
|
|
1754
|
+
addDependency(taskId, depId, d);
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
return createdTasks;
|
|
1759
|
+
}
|
|
1617
1760
|
var init_templates = __esm(() => {
|
|
1618
1761
|
init_database();
|
|
1762
|
+
init_tasks();
|
|
1619
1763
|
});
|
|
1620
1764
|
|
|
1621
1765
|
// src/db/checklists.ts
|
package/dist/types/index.d.ts
CHANGED
|
@@ -473,6 +473,32 @@ export interface CreateTemplateInput {
|
|
|
473
473
|
project_id?: string;
|
|
474
474
|
plan_id?: string;
|
|
475
475
|
metadata?: Record<string, unknown>;
|
|
476
|
+
tasks?: TemplateTaskInput[];
|
|
477
|
+
}
|
|
478
|
+
export interface TemplateTask {
|
|
479
|
+
id: string;
|
|
480
|
+
template_id: string;
|
|
481
|
+
position: number;
|
|
482
|
+
title_pattern: string;
|
|
483
|
+
description: string | null;
|
|
484
|
+
priority: TaskPriority;
|
|
485
|
+
tags: string[];
|
|
486
|
+
task_type: string | null;
|
|
487
|
+
depends_on_positions: number[];
|
|
488
|
+
metadata: Record<string, unknown>;
|
|
489
|
+
created_at: string;
|
|
490
|
+
}
|
|
491
|
+
export interface TemplateTaskInput {
|
|
492
|
+
title_pattern: string;
|
|
493
|
+
description?: string;
|
|
494
|
+
priority?: TaskPriority;
|
|
495
|
+
tags?: string[];
|
|
496
|
+
task_type?: string;
|
|
497
|
+
depends_on?: number[];
|
|
498
|
+
metadata?: Record<string, unknown>;
|
|
499
|
+
}
|
|
500
|
+
export interface TemplateWithTasks extends TaskTemplate {
|
|
501
|
+
tasks: TemplateTask[];
|
|
476
502
|
}
|
|
477
503
|
export declare class VersionConflictError extends Error {
|
|
478
504
|
taskId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|