@dalmasonto/taskflow-mcp 1.0.33 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -193
- package/dist/attachment-download.d.ts +74 -0
- package/dist/attachment-download.js +193 -0
- package/dist/attachment-download.js.map +1 -0
- package/dist/attachments.d.ts +23 -0
- package/dist/attachments.js +66 -0
- package/dist/attachments.js.map +1 -0
- package/dist/client.d.ts +206 -0
- package/dist/client.js +279 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +137 -18
- package/dist/config.js +187 -106
- package/dist/config.js.map +1 -0
- package/dist/connect.d.ts +89 -0
- package/dist/connect.js +269 -0
- package/dist/connect.js.map +1 -0
- package/dist/doctor.d.ts +24 -0
- package/dist/doctor.js +120 -0
- package/dist/doctor.js.map +1 -0
- package/dist/events.d.ts +186 -0
- package/dist/events.js +407 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.js +124 -184
- package/dist/index.js.map +1 -0
- package/dist/instructions.d.ts +12 -0
- package/dist/instructions.js +114 -0
- package/dist/instructions.js.map +1 -0
- package/dist/mint.d.ts +62 -0
- package/dist/mint.js +135 -0
- package/dist/mint.js.map +1 -0
- package/dist/mirror.d.ts +68 -0
- package/dist/mirror.js +103 -0
- package/dist/mirror.js.map +1 -0
- package/dist/pane-queue.d.ts +29 -0
- package/dist/pane-queue.js +35 -0
- package/dist/pane-queue.js.map +1 -0
- package/dist/prompts.d.ts +79 -0
- package/dist/prompts.js +211 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resolve.d.ts +72 -0
- package/dist/resolve.js +89 -0
- package/dist/resolve.js.map +1 -0
- package/dist/runtime.d.ts +54 -0
- package/dist/runtime.js +321 -0
- package/dist/runtime.js.map +1 -0
- package/dist/server.d.ts +56 -0
- package/dist/server.js +793 -0
- package/dist/server.js.map +1 -0
- package/dist/session-identifier.d.ts +48 -0
- package/dist/session-identifier.js +44 -0
- package/dist/session-identifier.js.map +1 -0
- package/dist/sessions-store.d.ts +38 -0
- package/dist/sessions-store.js +88 -0
- package/dist/sessions-store.js.map +1 -0
- package/dist/tmux.d.ts +200 -0
- package/dist/tmux.js +580 -0
- package/dist/tmux.js.map +1 -0
- package/hooks/metadata.mjs +99 -0
- package/hooks/permission-prompt.mjs +100 -0
- package/hooks/taskflow-hook.mjs +499 -0
- package/hooks/tool-logging.mjs +63 -0
- package/package.json +38 -29
- package/dist/agent-registry.d.ts +0 -27
- package/dist/agent-registry.js +0 -153
- package/dist/db.d.ts +0 -5
- package/dist/db.js +0 -220
- package/dist/helpers.d.ts +0 -21
- package/dist/helpers.js +0 -27
- package/dist/resources.d.ts +0 -2
- package/dist/resources.js +0 -89
- package/dist/sse.d.ts +0 -10
- package/dist/sse.js +0 -766
- package/dist/tmux-bridge.d.ts +0 -12
- package/dist/tmux-bridge.js +0 -157
- package/dist/tools/activity.d.ts +0 -39
- package/dist/tools/activity.js +0 -152
- package/dist/tools/agent-inbox.d.ts +0 -12
- package/dist/tools/agent-inbox.js +0 -257
- package/dist/tools/agent.d.ts +0 -14
- package/dist/tools/agent.js +0 -168
- package/dist/tools/analytics.d.ts +0 -21
- package/dist/tools/analytics.js +0 -191
- package/dist/tools/checkpoint.d.ts +0 -27
- package/dist/tools/checkpoint.js +0 -105
- package/dist/tools/notifications.d.ts +0 -31
- package/dist/tools/notifications.js +0 -59
- package/dist/tools/projects.d.ts +0 -55
- package/dist/tools/projects.js +0 -112
- package/dist/tools/settings.d.ts +0 -19
- package/dist/tools/settings.js +0 -73
- package/dist/tools/tasks.d.ts +0 -105
- package/dist/tools/tasks.js +0 -403
- package/dist/tools/terminal.d.ts +0 -4
- package/dist/tools/terminal.js +0 -98
- package/dist/tools/timer.d.ts +0 -37
- package/dist/tools/timer.js +0 -154
- package/dist/types.d.ts +0 -82
- package/dist/types.js +0 -30
package/dist/resources.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { getDb } from './db.js';
|
|
3
|
-
import { getAgentInstructions } from './tools/agent.js';
|
|
4
|
-
export function registerResources(server) {
|
|
5
|
-
// ─── Agent Instructions Resource ────────────────────────────────────
|
|
6
|
-
// Auto-loaded by MCP clients on connection — ensures rules are always present
|
|
7
|
-
server.resource('agent-instructions', 'taskflow://instructions', { description: 'TaskFlow agent onboarding instructions — rules, workflow, and live project context', mimeType: 'application/json' }, async (uri) => {
|
|
8
|
-
const instructions = await getAgentInstructions();
|
|
9
|
-
return {
|
|
10
|
-
contents: [{
|
|
11
|
-
uri: uri.href,
|
|
12
|
-
text: JSON.stringify(instructions, null, 2),
|
|
13
|
-
mimeType: 'application/json',
|
|
14
|
-
}],
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
// ─── Projects Resource ──────────────────────────────────────────────
|
|
18
|
-
server.resource('projects', new ResourceTemplate('taskflow://projects/{id}', {
|
|
19
|
-
list: async () => {
|
|
20
|
-
const db = getDb();
|
|
21
|
-
const projects = db.prepare('SELECT * FROM projects ORDER BY updated_at DESC').all();
|
|
22
|
-
return {
|
|
23
|
-
resources: projects.map(p => ({
|
|
24
|
-
uri: `taskflow://projects/${p.id}`,
|
|
25
|
-
name: p.name,
|
|
26
|
-
description: p.description ?? undefined,
|
|
27
|
-
mimeType: 'application/json',
|
|
28
|
-
})),
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
}), { description: 'TaskFlow projects', mimeType: 'application/json' }, async (uri, variables) => {
|
|
32
|
-
const db = getDb();
|
|
33
|
-
const id = Number(variables.id);
|
|
34
|
-
const project = db.prepare('SELECT * FROM projects WHERE id = ?').get(id);
|
|
35
|
-
if (!project) {
|
|
36
|
-
return { contents: [{ uri: uri.href, text: JSON.stringify({ error: 'Project not found' }), mimeType: 'application/json' }] };
|
|
37
|
-
}
|
|
38
|
-
// Include task count and recent tasks
|
|
39
|
-
const taskCount = db.prepare('SELECT COUNT(*) as count FROM tasks WHERE project_id = ?').get(id);
|
|
40
|
-
const recentTasks = db.prepare('SELECT id, title, status, priority FROM tasks WHERE project_id = ? ORDER BY updated_at DESC LIMIT 10').all(id);
|
|
41
|
-
return {
|
|
42
|
-
contents: [{
|
|
43
|
-
uri: uri.href,
|
|
44
|
-
text: JSON.stringify({ ...project, task_count: taskCount.count, recent_tasks: recentTasks }, null, 2),
|
|
45
|
-
mimeType: 'application/json',
|
|
46
|
-
}],
|
|
47
|
-
};
|
|
48
|
-
});
|
|
49
|
-
// ─── Tasks Resource ─────────────────────────────────────────────────
|
|
50
|
-
server.resource('tasks', new ResourceTemplate('taskflow://tasks/{id}', {
|
|
51
|
-
list: async () => {
|
|
52
|
-
const db = getDb();
|
|
53
|
-
// List active tasks (not done) for discoverability
|
|
54
|
-
const tasks = db.prepare("SELECT * FROM tasks WHERE status != 'done' ORDER BY updated_at DESC LIMIT 50").all();
|
|
55
|
-
return {
|
|
56
|
-
resources: tasks.map(t => ({
|
|
57
|
-
uri: `taskflow://tasks/${t.id}`,
|
|
58
|
-
name: `[${t.status}] ${t.title}`,
|
|
59
|
-
description: t.description?.slice(0, 100) ?? undefined,
|
|
60
|
-
mimeType: 'application/json',
|
|
61
|
-
})),
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
}), { description: 'TaskFlow tasks', mimeType: 'application/json' }, async (uri, variables) => {
|
|
65
|
-
const db = getDb();
|
|
66
|
-
const id = Number(variables.id);
|
|
67
|
-
const task = db.prepare('SELECT * FROM tasks WHERE id = ?').get(id);
|
|
68
|
-
if (!task) {
|
|
69
|
-
return { contents: [{ uri: uri.href, text: JSON.stringify({ error: 'Task not found' }), mimeType: 'application/json' }] };
|
|
70
|
-
}
|
|
71
|
-
// Include time tracking and dependencies
|
|
72
|
-
const sessions = db.prepare('SELECT * FROM sessions WHERE task_id = ? ORDER BY start DESC LIMIT 5').all(id);
|
|
73
|
-
const totalTime = db.prepare('SELECT SUM(CASE WHEN end IS NOT NULL THEN (julianday(end) - julianday(start)) * 86400000 ELSE 0 END) as total FROM sessions WHERE task_id = ?').get(id);
|
|
74
|
-
const deps = db.prepare('SELECT dependency_id FROM task_dependencies WHERE task_id = ?').all(id);
|
|
75
|
-
return {
|
|
76
|
-
contents: [{
|
|
77
|
-
uri: uri.href,
|
|
78
|
-
text: JSON.stringify({
|
|
79
|
-
...task,
|
|
80
|
-
tags: task.tags ? JSON.parse(task.tags) : [],
|
|
81
|
-
total_time_ms: totalTime.total ?? 0,
|
|
82
|
-
recent_sessions: sessions,
|
|
83
|
-
dependencies: deps.map(d => d.dependency_id),
|
|
84
|
-
}, null, 2),
|
|
85
|
-
mimeType: 'application/json',
|
|
86
|
-
}],
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
}
|
package/dist/sse.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare function startSSEServer(): Promise<void>;
|
|
2
|
-
export declare function markSSEActive(): void;
|
|
3
|
-
/**
|
|
4
|
-
* Broadcast an SSE event. If this process owns the SSE server, send directly.
|
|
5
|
-
* Otherwise, relay via HTTP to the process that does.
|
|
6
|
-
* Also pushes to the remote relay server if configured.
|
|
7
|
-
*/
|
|
8
|
-
export declare function broadcast(event: string, data: object): void;
|
|
9
|
-
/** Returns the port the SSE server is actively using */
|
|
10
|
-
export declare function getActivePort(): number;
|