agent-orchestration 0.5.0 → 0.6.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/.cursor/rules/orchestrator-auto.mdc +2 -0
- package/.cursor/rules/orchestrator-main.mdc +37 -7
- package/.cursor/rules/orchestrator-sub.mdc +89 -27
- package/README.md +278 -66
- package/dist/bin/cli.d.ts +1 -0
- package/dist/bin/cli.d.ts.map +1 -1
- package/dist/bin/cli.js +54 -157
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cursorCommands.d.ts +3 -0
- package/dist/bin/cursorCommands.d.ts.map +1 -0
- package/dist/bin/cursorCommands.js +330 -0
- package/dist/bin/cursorCommands.js.map +1 -0
- package/dist/database.d.ts +32 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +105 -5
- package/dist/database.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +59 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +69 -0
- package/dist/models.js.map +1 -1
- package/dist/providers/cursor.d.ts +14 -0
- package/dist/providers/cursor.d.ts.map +1 -0
- package/dist/providers/cursor.js +203 -0
- package/dist/providers/cursor.js.map +1 -0
- package/dist/providers/types.d.ts +60 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +5 -0
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/coordination.d.ts.map +1 -1
- package/dist/tools/coordination.js +47 -0
- package/dist/tools/coordination.js.map +1 -1
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +6 -1
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/provider.d.ts +3 -0
- package/dist/tools/provider.d.ts.map +1 -0
- package/dist/tools/provider.js +403 -0
- package/dist/tools/provider.js.map +1 -0
- package/dist/tools/proxy.d.ts +6 -0
- package/dist/tools/proxy.d.ts.map +1 -0
- package/dist/tools/proxy.js +107 -0
- package/dist/tools/proxy.js.map +1 -0
- package/dist/tools/research.d.ts +9 -0
- package/dist/tools/research.d.ts.map +1 -0
- package/dist/tools/research.js +182 -0
- package/dist/tools/research.js.map +1 -0
- package/dist/tools/task.d.ts.map +1 -1
- package/dist/tools/task.js +98 -9
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/utility.d.ts.map +1 -1
- package/dist/tools/utility.js +85 -16
- package/dist/tools/utility.js.map +1 -1
- package/dist/utils/autoDocumentation.d.ts +8 -0
- package/dist/utils/autoDocumentation.d.ts.map +1 -0
- package/dist/utils/autoDocumentation.js +140 -0
- package/dist/utils/autoDocumentation.js.map +1 -0
- package/dist/utils/autoDocumentation.test.d.ts +2 -0
- package/dist/utils/autoDocumentation.test.d.ts.map +1 -0
- package/dist/utils/autoDocumentation.test.js +47 -0
- package/dist/utils/autoDocumentation.test.js.map +1 -0
- package/dist/utils/contextSync.d.ts.map +1 -1
- package/dist/utils/contextSync.js +21 -1
- package/dist/utils/contextSync.js.map +1 -1
- package/dist/utils/cursorCli.d.ts +46 -0
- package/dist/utils/cursorCli.d.ts.map +1 -0
- package/dist/utils/cursorCli.js +176 -0
- package/dist/utils/cursorCli.js.map +1 -0
- package/dist/utils/cursorCli.test.d.ts +2 -0
- package/dist/utils/cursorCli.test.d.ts.map +1 -0
- package/dist/utils/cursorCli.test.js +134 -0
- package/dist/utils/cursorCli.test.js.map +1 -0
- package/dist/utils/delegatedTaskRuntime.d.ts +45 -0
- package/dist/utils/delegatedTaskRuntime.d.ts.map +1 -0
- package/dist/utils/delegatedTaskRuntime.js +147 -0
- package/dist/utils/delegatedTaskRuntime.js.map +1 -0
- package/dist/utils/delegationKnowledge.d.ts +51 -0
- package/dist/utils/delegationKnowledge.d.ts.map +1 -0
- package/dist/utils/delegationKnowledge.js +197 -0
- package/dist/utils/delegationKnowledge.js.map +1 -0
- package/dist/utils/delegationRecovery.d.ts +17 -0
- package/dist/utils/delegationRecovery.d.ts.map +1 -0
- package/dist/utils/delegationRecovery.js +63 -0
- package/dist/utils/delegationRecovery.js.map +1 -0
- package/dist/utils/delegationRecovery.test.d.ts +2 -0
- package/dist/utils/delegationRecovery.test.d.ts.map +1 -0
- package/dist/utils/delegationRecovery.test.js +42 -0
- package/dist/utils/delegationRecovery.test.js.map +1 -0
- package/dist/utils/orchestratorConfig.d.ts +19 -0
- package/dist/utils/orchestratorConfig.d.ts.map +1 -0
- package/dist/utils/orchestratorConfig.js +38 -0
- package/dist/utils/orchestratorConfig.js.map +1 -0
- package/dist/utils/subprocess.d.ts +27 -0
- package/dist/utils/subprocess.d.ts.map +1 -0
- package/dist/utils/subprocess.js +84 -0
- package/dist/utils/subprocess.js.map +1 -0
- package/package.json +17 -5
- package/templates/AGENTS.md +164 -0
- package/activeContext.md +0 -37
- package/src/bin/cli.ts +0 -430
- package/src/database.ts +0 -764
- package/src/index.ts +0 -71
- package/src/models.ts +0 -226
- package/src/tools/agent.ts +0 -241
- package/src/tools/coordination.ts +0 -152
- package/src/tools/index.ts +0 -9
- package/src/tools/memory.ts +0 -150
- package/src/tools/task.ts +0 -334
- package/src/tools/utility.ts +0 -202
- package/src/utils/contextSync.ts +0 -144
- package/tsconfig.json +0 -20
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research workflow tools
|
|
3
|
+
*
|
|
4
|
+
* These tools implement the Research-First Workflow, ensuring agents
|
|
5
|
+
* properly understand context, requirements, and design before implementation.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { getDatabase } from '../database.js';
|
|
9
|
+
import { TaskComplexity, RESEARCH_REQUIREMENTS } from '../models.js';
|
|
10
|
+
export function registerResearchTools(server) {
|
|
11
|
+
// research_ready
|
|
12
|
+
server.tool('research_ready', 'Mark research as complete for a task. Validates that all required research items are documented based on task complexity. Call this before starting implementation.', {
|
|
13
|
+
task_id: z.string().describe('The task ID to mark as research-ready'),
|
|
14
|
+
}, async ({ task_id }) => {
|
|
15
|
+
const db = getDatabase();
|
|
16
|
+
const result = db.markResearchReady(task_id);
|
|
17
|
+
if (!result.success) {
|
|
18
|
+
return {
|
|
19
|
+
content: [{ type: 'text', text: `❌ ${result.message}` }],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const lines = [
|
|
23
|
+
'# ✅ Research Complete',
|
|
24
|
+
'',
|
|
25
|
+
`**Task**: ${result.task?.title}`,
|
|
26
|
+
`**Complexity**: ${result.task?.complexity}`,
|
|
27
|
+
'',
|
|
28
|
+
'You may now proceed with implementation.',
|
|
29
|
+
'',
|
|
30
|
+
'Next steps:',
|
|
31
|
+
'1. `task_claim` to start working',
|
|
32
|
+
'2. `lock_acquire` on files you\'ll edit',
|
|
33
|
+
'3. Implement the solution',
|
|
34
|
+
'4. `task_complete` when done',
|
|
35
|
+
];
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
// research_status
|
|
41
|
+
server.tool('research_status', 'Check research progress for a task. Shows what research is required, completed, and missing based on task complexity.', {
|
|
42
|
+
task_id: z.string().describe('The task ID to check research status for'),
|
|
43
|
+
}, async ({ task_id }) => {
|
|
44
|
+
const db = getDatabase();
|
|
45
|
+
const status = db.getResearchStatus(task_id);
|
|
46
|
+
if (!status.task) {
|
|
47
|
+
return {
|
|
48
|
+
content: [{ type: 'text', text: `Task ${task_id} not found.` }],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const task = status.task;
|
|
52
|
+
const lines = [
|
|
53
|
+
'# Research Status',
|
|
54
|
+
'',
|
|
55
|
+
`**Task**: ${task.title}`,
|
|
56
|
+
`**Complexity**: ${task.complexity}`,
|
|
57
|
+
`**Research Ready**: ${task.researchReady ? '✅ Yes' : '❌ No'}`,
|
|
58
|
+
'',
|
|
59
|
+
];
|
|
60
|
+
if (status.required.length === 0) {
|
|
61
|
+
lines.push('_No research required for trivial tasks._');
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
lines.push('## Checklist');
|
|
65
|
+
lines.push('');
|
|
66
|
+
for (const item of status.required) {
|
|
67
|
+
const done = status.completed.includes(item);
|
|
68
|
+
const emoji = done ? '✅' : '⬜';
|
|
69
|
+
const namespace = `research:${task_id}:${item}`;
|
|
70
|
+
lines.push(`${emoji} **${item}** - \`${namespace}\``);
|
|
71
|
+
}
|
|
72
|
+
if (status.missing.length > 0) {
|
|
73
|
+
lines.push('');
|
|
74
|
+
lines.push('## How to Complete');
|
|
75
|
+
lines.push('');
|
|
76
|
+
lines.push('Use `memory_set` to document each missing item:');
|
|
77
|
+
lines.push('');
|
|
78
|
+
lines.push('```');
|
|
79
|
+
lines.push('memory_set:');
|
|
80
|
+
lines.push(` key: "<finding_name>"`);
|
|
81
|
+
lines.push(` value: "<your findings>"`);
|
|
82
|
+
lines.push(` namespace: "research:${task_id}:${status.missing[0]}"`);
|
|
83
|
+
lines.push('```');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Show existing research
|
|
87
|
+
const research = db.getTaskResearch(task_id);
|
|
88
|
+
const categories = Object.keys(research);
|
|
89
|
+
if (categories.length > 0) {
|
|
90
|
+
lines.push('');
|
|
91
|
+
lines.push('## Documented Research');
|
|
92
|
+
for (const category of categories) {
|
|
93
|
+
lines.push('');
|
|
94
|
+
lines.push(`### ${category}`);
|
|
95
|
+
for (const entry of research[category]) {
|
|
96
|
+
const valueStr = typeof entry.value === 'string'
|
|
97
|
+
? entry.value.slice(0, 100)
|
|
98
|
+
: JSON.stringify(entry.value).slice(0, 100);
|
|
99
|
+
lines.push(`- **${entry.key}**: ${valueStr}${valueStr.length >= 100 ? '...' : ''}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
// research_query
|
|
108
|
+
server.tool('research_query', 'Search past research findings across all tasks. Useful for finding relevant context from previous work.', {
|
|
109
|
+
query: z.string().describe('Search term to find in research findings'),
|
|
110
|
+
limit: z.number().optional().default(10).describe('Maximum results to return'),
|
|
111
|
+
}, async ({ query, limit }) => {
|
|
112
|
+
const db = getDatabase();
|
|
113
|
+
const results = db.searchResearch(query, limit);
|
|
114
|
+
if (results.length === 0) {
|
|
115
|
+
return {
|
|
116
|
+
content: [{ type: 'text', text: `No research findings match "${query}".` }],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const lines = [
|
|
120
|
+
`# Research Results for "${query}"`,
|
|
121
|
+
'',
|
|
122
|
+
`Found ${results.length} result(s):`,
|
|
123
|
+
'',
|
|
124
|
+
];
|
|
125
|
+
for (const entry of results) {
|
|
126
|
+
// Parse namespace to get task ID and category
|
|
127
|
+
const parts = entry.namespace.split(':');
|
|
128
|
+
const taskId = parts[1] || 'unknown';
|
|
129
|
+
const category = parts[2] || 'unknown';
|
|
130
|
+
const valueStr = typeof entry.value === 'string'
|
|
131
|
+
? entry.value.slice(0, 150)
|
|
132
|
+
: JSON.stringify(entry.value).slice(0, 150);
|
|
133
|
+
lines.push(`### ${entry.key}`);
|
|
134
|
+
lines.push(`- **Task**: \`${taskId.slice(0, 8)}...\``);
|
|
135
|
+
lines.push(`- **Category**: ${category}`);
|
|
136
|
+
lines.push(`- **Value**: ${valueStr}${valueStr.length >= 150 ? '...' : ''}`);
|
|
137
|
+
lines.push('');
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
// research_checklist
|
|
144
|
+
server.tool('research_checklist', 'Get the research checklist for a specific complexity level. Shows what needs to be documented before implementation.', {
|
|
145
|
+
complexity: z
|
|
146
|
+
.enum(['trivial', 'simple', 'moderate', 'complex'])
|
|
147
|
+
.optional()
|
|
148
|
+
.describe('Complexity level. If omitted, shows all levels.'),
|
|
149
|
+
}, async ({ complexity }) => {
|
|
150
|
+
const lines = ['# Research Checklists', ''];
|
|
151
|
+
const levels = complexity
|
|
152
|
+
? [complexity]
|
|
153
|
+
: [TaskComplexity.TRIVIAL, TaskComplexity.SIMPLE, TaskComplexity.MODERATE, TaskComplexity.COMPLEX];
|
|
154
|
+
for (const level of levels) {
|
|
155
|
+
const requirements = RESEARCH_REQUIREMENTS[level];
|
|
156
|
+
lines.push(`## ${level.charAt(0).toUpperCase() + level.slice(1)}`);
|
|
157
|
+
lines.push('');
|
|
158
|
+
if (requirements.length === 0) {
|
|
159
|
+
lines.push('_No research required - can proceed directly to implementation._');
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
for (const req of requirements) {
|
|
163
|
+
const descriptions = {
|
|
164
|
+
context: 'Understand the current state, existing patterns, and project context',
|
|
165
|
+
files: 'Identify all files that will be affected by this change',
|
|
166
|
+
requirements: 'Document specs, acceptance criteria, and edge cases',
|
|
167
|
+
design: 'Make architecture decisions and document component structure',
|
|
168
|
+
};
|
|
169
|
+
lines.push(`- **${req}**: ${descriptions[req] || req}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
lines.push('');
|
|
173
|
+
}
|
|
174
|
+
lines.push('---');
|
|
175
|
+
lines.push('');
|
|
176
|
+
lines.push('Use `memory_set` with namespace `research:<task_id>:<category>` to document each item.');
|
|
177
|
+
return {
|
|
178
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
179
|
+
};
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsazD"}
|
package/dist/tools/task.js
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { getDatabase } from '../database.js';
|
|
6
|
-
import { TaskStatus } from '../models.js';
|
|
6
|
+
import { TaskStatus, RESEARCH_REQUIREMENTS } from '../models.js';
|
|
7
7
|
import { getCurrentAgentId } from './agent.js';
|
|
8
|
+
import { syncToActiveContext } from '../utils/contextSync.js';
|
|
9
|
+
import { generateTaskDocumentation } from '../utils/autoDocumentation.js';
|
|
8
10
|
export function registerTaskTools(server) {
|
|
9
11
|
// task_create
|
|
10
|
-
server.tool('task_create', 'Create a new task in the task queue.', {
|
|
12
|
+
server.tool('task_create', 'Create a new task in the task queue. Complexity is auto-detected from title/description but can be overridden.', {
|
|
11
13
|
title: z.string().describe('Short title for the task'),
|
|
12
14
|
description: z.string().optional().default('').describe('Detailed description'),
|
|
13
15
|
priority: z
|
|
@@ -15,38 +17,54 @@ export function registerTaskTools(server) {
|
|
|
15
17
|
.optional()
|
|
16
18
|
.default('normal')
|
|
17
19
|
.describe('Priority level'),
|
|
20
|
+
complexity: z
|
|
21
|
+
.enum(['trivial', 'simple', 'moderate', 'complex'])
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('Task complexity (auto-detected if not provided). Determines research requirements.'),
|
|
18
24
|
assigned_to: z.string().optional().describe('Agent ID to assign to'),
|
|
19
25
|
dependencies: z
|
|
20
26
|
.array(z.string())
|
|
21
27
|
.optional()
|
|
22
28
|
.default([])
|
|
23
29
|
.describe('List of task IDs that must complete first'),
|
|
24
|
-
}, async ({ title, description, priority, assigned_to, dependencies }) => {
|
|
30
|
+
}, async ({ title, description, priority, complexity, assigned_to, dependencies }) => {
|
|
25
31
|
const agentId = getCurrentAgentId();
|
|
26
32
|
const task = getDatabase().createTask({
|
|
27
33
|
title,
|
|
28
34
|
description,
|
|
29
35
|
priority: priority,
|
|
36
|
+
complexity: complexity,
|
|
30
37
|
createdBy: agentId,
|
|
31
38
|
assignedTo: assigned_to ?? null,
|
|
32
39
|
dependencies,
|
|
33
40
|
});
|
|
41
|
+
// Keep activeContext.md up-to-date (if enabled)
|
|
42
|
+
syncToActiveContext();
|
|
43
|
+
const requirements = RESEARCH_REQUIREMENTS[task.complexity];
|
|
44
|
+
const researchInfo = requirements.length > 0
|
|
45
|
+
? `\n\n**Research required** (${task.complexity}): ${requirements.join(', ')}\nUse \`research_status ${task.id}\` to see checklist.`
|
|
46
|
+
: '\n\n_No research required (trivial task)._';
|
|
34
47
|
return {
|
|
35
48
|
content: [
|
|
36
49
|
{
|
|
37
50
|
type: 'text',
|
|
38
|
-
text: `Task created: '${task.title}' (\`${task.id}\`)`,
|
|
51
|
+
text: `Task created: '${task.title}' (\`${task.id}\`)\n**Complexity**: ${task.complexity}${researchInfo}`,
|
|
39
52
|
},
|
|
40
53
|
],
|
|
41
54
|
};
|
|
42
55
|
});
|
|
43
56
|
// task_claim
|
|
44
|
-
server.tool('task_claim', 'Claim a task to work on it. Sets status to in_progress.', {
|
|
57
|
+
server.tool('task_claim', 'Claim a task to work on it. Sets status to in_progress. Requires research to be complete for non-trivial tasks.', {
|
|
45
58
|
task_id: z
|
|
46
59
|
.string()
|
|
47
60
|
.optional()
|
|
48
61
|
.describe('Task ID to claim. If omitted, claims the next available task.'),
|
|
49
|
-
|
|
62
|
+
skip_research: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.default(false)
|
|
66
|
+
.describe('Force claim without research (not recommended). Use only for urgent fixes.'),
|
|
67
|
+
}, async ({ task_id, skip_research }) => {
|
|
50
68
|
const agentId = getCurrentAgentId();
|
|
51
69
|
if (!agentId) {
|
|
52
70
|
return {
|
|
@@ -77,17 +95,61 @@ export function registerTaskTools(server) {
|
|
|
77
95
|
content: [{ type: 'text', text: `Cannot claim: dependencies not met.` }],
|
|
78
96
|
};
|
|
79
97
|
}
|
|
98
|
+
// Check research gate (unless skipped or trivial)
|
|
99
|
+
const requirements = RESEARCH_REQUIREMENTS[task.complexity];
|
|
100
|
+
if (!skip_research && requirements.length > 0 && !task.researchReady) {
|
|
101
|
+
const status = db.getResearchStatus(task.id);
|
|
102
|
+
const lines = [
|
|
103
|
+
'❌ **Cannot claim: Research not complete**',
|
|
104
|
+
'',
|
|
105
|
+
`**Task**: ${task.title}`,
|
|
106
|
+
`**Complexity**: ${task.complexity}`,
|
|
107
|
+
'',
|
|
108
|
+
'## Required Research',
|
|
109
|
+
];
|
|
110
|
+
for (const req of requirements) {
|
|
111
|
+
const done = status.completed.includes(req);
|
|
112
|
+
lines.push(`${done ? '✅' : '⬜'} ${req}`);
|
|
113
|
+
}
|
|
114
|
+
if (status.missing.length > 0) {
|
|
115
|
+
lines.push('');
|
|
116
|
+
lines.push('## How to Complete');
|
|
117
|
+
lines.push('');
|
|
118
|
+
lines.push('1. Document each missing item with `memory_set`:');
|
|
119
|
+
lines.push('```');
|
|
120
|
+
lines.push(`memory_set key="<finding>" value="<details>" namespace="research:${task.id}:${status.missing[0]}"`);
|
|
121
|
+
lines.push('```');
|
|
122
|
+
lines.push('');
|
|
123
|
+
lines.push('2. Mark research complete:');
|
|
124
|
+
lines.push('```');
|
|
125
|
+
lines.push(`research_ready task_id="${task.id}"`);
|
|
126
|
+
lines.push('```');
|
|
127
|
+
lines.push('');
|
|
128
|
+
lines.push('3. Then claim the task again.');
|
|
129
|
+
lines.push('');
|
|
130
|
+
lines.push('_Use `skip_research: true` to bypass (not recommended)._');
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
80
136
|
// Claim it
|
|
81
137
|
const updated = db.updateTask(task.id, {
|
|
82
138
|
status: TaskStatus.IN_PROGRESS,
|
|
83
139
|
assignedTo: agentId,
|
|
84
140
|
});
|
|
85
141
|
if (updated) {
|
|
142
|
+
generateTaskDocumentation(db, updated.id);
|
|
143
|
+
// Keep activeContext.md up-to-date (if enabled)
|
|
144
|
+
syncToActiveContext();
|
|
145
|
+
const skippedWarning = skip_research && requirements.length > 0 && !task.researchReady
|
|
146
|
+
? '\n\n⚠️ _Research was skipped. Consider documenting findings as you work._'
|
|
147
|
+
: '';
|
|
86
148
|
return {
|
|
87
149
|
content: [
|
|
88
150
|
{
|
|
89
151
|
type: 'text',
|
|
90
|
-
text: `Claimed task: '${updated.title}' (\`${updated.id}\`)`,
|
|
152
|
+
text: `Claimed task: '${updated.title}' (\`${updated.id}\`)${skippedWarning}`,
|
|
91
153
|
},
|
|
92
154
|
],
|
|
93
155
|
};
|
|
@@ -120,6 +182,8 @@ export function registerTaskTools(server) {
|
|
|
120
182
|
metadata,
|
|
121
183
|
});
|
|
122
184
|
if (updated) {
|
|
185
|
+
// Keep activeContext.md up-to-date (if enabled)
|
|
186
|
+
syncToActiveContext();
|
|
123
187
|
const statusInfo = status ? ` → ${status}` : '';
|
|
124
188
|
const progressInfo = progress !== undefined ? ` (${progress}%)` : '';
|
|
125
189
|
return {
|
|
@@ -152,6 +216,8 @@ export function registerTaskTools(server) {
|
|
|
152
216
|
output,
|
|
153
217
|
});
|
|
154
218
|
if (updated) {
|
|
219
|
+
// Keep activeContext.md up-to-date (if enabled)
|
|
220
|
+
syncToActiveContext();
|
|
155
221
|
return {
|
|
156
222
|
content: [
|
|
157
223
|
{
|
|
@@ -199,8 +265,9 @@ export function registerTaskTools(server) {
|
|
|
199
265
|
failed: '❌',
|
|
200
266
|
cancelled: '🚫',
|
|
201
267
|
}[task.status];
|
|
202
|
-
|
|
203
|
-
lines.push(
|
|
268
|
+
const researchIcon = task.researchReady ? '📚' : (RESEARCH_REQUIREMENTS[task.complexity].length > 0 ? '🔬' : '');
|
|
269
|
+
lines.push(`${emoji} **${task.title}** (\`${task.id.slice(0, 8)}...\`) ${researchIcon}`);
|
|
270
|
+
lines.push(` Status: ${task.status} | Complexity: ${task.complexity} | Research: ${task.researchReady ? 'ready' : 'pending'}`);
|
|
204
271
|
}
|
|
205
272
|
return {
|
|
206
273
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
@@ -247,6 +314,17 @@ export function registerTaskTools(server) {
|
|
|
247
314
|
content: [{ type: 'text', text: 'No - already completed.' }],
|
|
248
315
|
};
|
|
249
316
|
}
|
|
317
|
+
const requirements = RESEARCH_REQUIREMENTS[task.complexity];
|
|
318
|
+
if (requirements.length > 0 && !task.researchReady) {
|
|
319
|
+
return {
|
|
320
|
+
content: [
|
|
321
|
+
{
|
|
322
|
+
type: 'text',
|
|
323
|
+
text: `Yes - task is assigned to you, but research is not complete. Use research_status task_id="${task.id}" then research_ready, then task_claim.`,
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
};
|
|
327
|
+
}
|
|
250
328
|
return {
|
|
251
329
|
content: [{ type: 'text', text: 'Yes - task is ready for you. Use task_claim to start.' }],
|
|
252
330
|
};
|
|
@@ -254,6 +332,17 @@ export function registerTaskTools(server) {
|
|
|
254
332
|
else {
|
|
255
333
|
const available = db.getNextAvailableTask(agentId);
|
|
256
334
|
if (available) {
|
|
335
|
+
const requirements = RESEARCH_REQUIREMENTS[available.complexity];
|
|
336
|
+
if (requirements.length > 0 && !available.researchReady) {
|
|
337
|
+
return {
|
|
338
|
+
content: [
|
|
339
|
+
{
|
|
340
|
+
type: 'text',
|
|
341
|
+
text: `Yes - '${available.title}' is available, but research is required before you can claim it. Use research_status task_id="${available.id}" then research_ready, then task_claim.`,
|
|
342
|
+
},
|
|
343
|
+
],
|
|
344
|
+
};
|
|
345
|
+
}
|
|
257
346
|
return {
|
|
258
347
|
content: [{ type: 'text', text: `Yes - '${available.title}' is available.` }],
|
|
259
348
|
};
|
package/dist/tools/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmQ5D"}
|
package/dist/tools/utility.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { getDatabase } from '../database.js';
|
|
6
|
-
import { AgentRole, AgentStatus, TaskStatus } from '../models.js';
|
|
6
|
+
import { AgentRole, AgentStatus, TaskStatus, RESEARCH_REQUIREMENTS } from '../models.js';
|
|
7
7
|
import { setCurrentAgent, } from './agent.js';
|
|
8
8
|
import { syncToActiveContext } from '../utils/contextSync.js';
|
|
9
9
|
export function registerUtilityTools(server) {
|
|
@@ -94,7 +94,7 @@ export function registerUtilityTools(server) {
|
|
|
94
94
|
};
|
|
95
95
|
});
|
|
96
96
|
// claim_todo
|
|
97
|
-
server.tool('claim_todo', 'FOR SUB-AGENTS: Register yourself AND claim a specific task in one call. Use this when you were spawned to work on a specific todo. This creates the task if it doesn\'t exist
|
|
97
|
+
server.tool('claim_todo', 'FOR SUB-AGENTS: Register yourself AND claim a specific task in one call. Use this when you were spawned to work on a specific todo. This creates the task if it doesn\'t exist. Shows research checklist based on complexity.', {
|
|
98
98
|
title: z.string().describe('The title of the todo/task you were spawned to work on'),
|
|
99
99
|
description: z.string().optional().default('').describe('Additional details about the task'),
|
|
100
100
|
priority: z
|
|
@@ -102,7 +102,11 @@ export function registerUtilityTools(server) {
|
|
|
102
102
|
.optional()
|
|
103
103
|
.default('normal')
|
|
104
104
|
.describe('Priority level'),
|
|
105
|
-
|
|
105
|
+
complexity: z
|
|
106
|
+
.enum(['trivial', 'simple', 'moderate', 'complex'])
|
|
107
|
+
.optional()
|
|
108
|
+
.describe('Task complexity (auto-detected if not provided). Determines research requirements.'),
|
|
109
|
+
}, async ({ title, description, priority, complexity }) => {
|
|
106
110
|
const db = getDatabase();
|
|
107
111
|
// Generate agent name
|
|
108
112
|
const agentName = `sub-${Date.now()}`;
|
|
@@ -111,49 +115,114 @@ export function registerUtilityTools(server) {
|
|
|
111
115
|
name: agentName,
|
|
112
116
|
role: AgentRole.SUB,
|
|
113
117
|
capabilities: ['code'],
|
|
114
|
-
status: AgentStatus.
|
|
118
|
+
status: AgentStatus.ACTIVE, // Active, not busy yet (need to do research first)
|
|
115
119
|
});
|
|
116
120
|
setCurrentAgent(agent.id, agent.name);
|
|
117
121
|
// Check if a task with this title already exists and is pending
|
|
118
122
|
const allTasks = db.listTasks();
|
|
119
123
|
let task = allTasks.find((t) => t.title.toLowerCase().trim() === title.toLowerCase().trim() &&
|
|
120
124
|
['pending', 'assigned'].includes(t.status));
|
|
125
|
+
let isNewTask = false;
|
|
121
126
|
if (task) {
|
|
122
|
-
//
|
|
127
|
+
// Assign the existing task to this agent (but don't start yet if research needed)
|
|
123
128
|
task = db.updateTask(task.id, {
|
|
124
129
|
assignedTo: agent.id,
|
|
125
|
-
status: TaskStatus.
|
|
130
|
+
status: TaskStatus.ASSIGNED,
|
|
126
131
|
});
|
|
127
132
|
}
|
|
128
133
|
else {
|
|
129
|
-
// Create a new task
|
|
134
|
+
// Create a new task (assigned, not in_progress)
|
|
135
|
+
isNewTask = true;
|
|
130
136
|
task = db.createTask({
|
|
131
137
|
title,
|
|
132
138
|
description,
|
|
133
139
|
priority: priority,
|
|
134
|
-
|
|
140
|
+
complexity: complexity,
|
|
141
|
+
status: TaskStatus.ASSIGNED,
|
|
135
142
|
assignedTo: agent.id,
|
|
136
143
|
createdBy: agent.id,
|
|
137
|
-
startedAt: new Date(),
|
|
138
144
|
});
|
|
139
145
|
}
|
|
140
146
|
// Sync context
|
|
141
147
|
syncToActiveContext();
|
|
148
|
+
// Get research requirements
|
|
149
|
+
const requirements = RESEARCH_REQUIREMENTS[task.complexity];
|
|
150
|
+
const researchStatus = db.getResearchStatus(task.id);
|
|
142
151
|
const lines = [
|
|
143
152
|
'# Task Claimed',
|
|
144
153
|
'',
|
|
145
154
|
`**You are**: ${agent.name} (\`${agent.id}\`)`,
|
|
146
155
|
`**Working on**: ${task.title}`,
|
|
147
156
|
`**Task ID**: \`${task.id}\``,
|
|
157
|
+
`**Complexity**: ${task.complexity}`,
|
|
148
158
|
'',
|
|
149
|
-
'---',
|
|
150
|
-
'',
|
|
151
|
-
'Now you can start working. Remember to:',
|
|
152
|
-
'1. `lock_acquire` on any files you edit',
|
|
153
|
-
'2. `task_update` to report progress',
|
|
154
|
-
'3. `task_complete` when done',
|
|
155
|
-
'4. `agent_unregister` when finished',
|
|
156
159
|
];
|
|
160
|
+
// Show research checklist based on complexity
|
|
161
|
+
if (requirements.length === 0) {
|
|
162
|
+
// Trivial task - no research needed
|
|
163
|
+
lines.push('## ✅ No Research Required');
|
|
164
|
+
lines.push('');
|
|
165
|
+
lines.push('This is a trivial task. You can start working immediately.');
|
|
166
|
+
lines.push('');
|
|
167
|
+
lines.push('**Next steps:**');
|
|
168
|
+
lines.push('1. `task_claim` to start working');
|
|
169
|
+
lines.push('2. `lock_acquire` on any files you edit');
|
|
170
|
+
lines.push('3. Implement the solution');
|
|
171
|
+
lines.push('4. `task_complete` when done');
|
|
172
|
+
lines.push('5. `agent_unregister` when finished');
|
|
173
|
+
}
|
|
174
|
+
else if (researchStatus.isReady) {
|
|
175
|
+
// Research already done
|
|
176
|
+
lines.push('## ✅ Research Complete');
|
|
177
|
+
lines.push('');
|
|
178
|
+
lines.push('Research has already been documented. You can start working.');
|
|
179
|
+
lines.push('');
|
|
180
|
+
lines.push('**Next steps:**');
|
|
181
|
+
lines.push('1. `task_claim` to start working');
|
|
182
|
+
lines.push('2. `lock_acquire` on any files you edit');
|
|
183
|
+
lines.push('3. Implement the solution');
|
|
184
|
+
lines.push('4. `task_complete` when done');
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
// Research needed
|
|
188
|
+
lines.push('## 🔬 Research Required');
|
|
189
|
+
lines.push('');
|
|
190
|
+
lines.push('Before implementing, document your research:');
|
|
191
|
+
lines.push('');
|
|
192
|
+
const descriptions = {
|
|
193
|
+
context: 'Understand the current state, existing patterns, and project context',
|
|
194
|
+
files: 'Identify all files that will be affected by this change',
|
|
195
|
+
requirements: 'Document specs, acceptance criteria, and edge cases',
|
|
196
|
+
design: 'Make architecture decisions and document component structure',
|
|
197
|
+
};
|
|
198
|
+
for (const req of requirements) {
|
|
199
|
+
const done = researchStatus.completed.includes(req);
|
|
200
|
+
const emoji = done ? '✅' : '⬜';
|
|
201
|
+
lines.push(`${emoji} **${req}**: ${descriptions[req] || req}`);
|
|
202
|
+
}
|
|
203
|
+
lines.push('');
|
|
204
|
+
lines.push('### How to Document Research');
|
|
205
|
+
lines.push('');
|
|
206
|
+
lines.push('Use `memory_set` for each item:');
|
|
207
|
+
lines.push('```');
|
|
208
|
+
lines.push('memory_set:');
|
|
209
|
+
lines.push(' key: "<finding_name>"');
|
|
210
|
+
lines.push(' value: "<your findings>"');
|
|
211
|
+
lines.push(` namespace: "research:${task.id}:<category>"`);
|
|
212
|
+
lines.push('```');
|
|
213
|
+
lines.push('');
|
|
214
|
+
lines.push('### When Done');
|
|
215
|
+
lines.push('');
|
|
216
|
+
lines.push('1. Mark research complete:');
|
|
217
|
+
lines.push('```');
|
|
218
|
+
lines.push(`research_ready task_id="${task.id}"`);
|
|
219
|
+
lines.push('```');
|
|
220
|
+
lines.push('');
|
|
221
|
+
lines.push('2. Then claim to start implementation:');
|
|
222
|
+
lines.push('```');
|
|
223
|
+
lines.push(`task_claim task_id="${task.id}"`);
|
|
224
|
+
lines.push('```');
|
|
225
|
+
}
|
|
157
226
|
return {
|
|
158
227
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
159
228
|
};
|