@vibescope/mcp-server 0.5.0 → 0.5.1
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/CHANGELOG.md +84 -84
- package/README.md +194 -194
- package/dist/api-client/tasks.d.ts +1 -0
- package/dist/cli-init.js +21 -21
- package/dist/cli.js +26 -26
- package/dist/handlers/tasks.js +7 -1
- package/dist/handlers/tool-docs.js +1216 -1216
- package/dist/index.js +73 -73
- package/dist/templates/agent-guidelines.d.ts +1 -1
- package/dist/templates/agent-guidelines.js +205 -205
- package/dist/templates/help-content.js +1621 -1621
- package/dist/tools/bodies-of-work.js +6 -6
- package/dist/tools/cloud-agents.js +22 -22
- package/dist/tools/milestones.js +2 -2
- package/dist/tools/requests.js +1 -1
- package/dist/tools/session.js +11 -11
- package/dist/tools/sprints.js +9 -9
- package/dist/tools/tasks.js +43 -35
- package/dist/tools/worktrees.js +14 -14
- package/dist/utils.js +11 -11
- package/docs/TOOLS.md +2687 -2685
- package/package.json +53 -53
- package/scripts/generate-docs.ts +212 -212
- package/scripts/version-bump.ts +203 -203
- package/src/api-client/blockers.ts +86 -86
- package/src/api-client/bodies-of-work.ts +194 -194
- package/src/api-client/chat.ts +50 -50
- package/src/api-client/connectors.ts +152 -152
- package/src/api-client/cost.ts +185 -185
- package/src/api-client/decisions.ts +87 -87
- package/src/api-client/deployment.ts +313 -313
- package/src/api-client/discovery.ts +81 -81
- package/src/api-client/fallback.ts +52 -52
- package/src/api-client/file-checkouts.ts +115 -115
- package/src/api-client/findings.ts +100 -100
- package/src/api-client/git-issues.ts +88 -88
- package/src/api-client/ideas.ts +112 -112
- package/src/api-client/index.ts +592 -592
- package/src/api-client/milestones.ts +83 -83
- package/src/api-client/organizations.ts +185 -185
- package/src/api-client/progress.ts +94 -94
- package/src/api-client/project.ts +181 -181
- package/src/api-client/requests.ts +54 -54
- package/src/api-client/session.ts +220 -220
- package/src/api-client/sprints.ts +227 -227
- package/src/api-client/subtasks.ts +57 -57
- package/src/api-client/tasks.ts +451 -450
- package/src/api-client/types.ts +32 -32
- package/src/api-client/validation.ts +60 -60
- package/src/api-client/worktrees.ts +53 -53
- package/src/api-client.test.ts +847 -847
- package/src/api-client.ts +2728 -2728
- package/src/cli-init.ts +558 -558
- package/src/cli.test.ts +284 -284
- package/src/cli.ts +204 -204
- package/src/handlers/__test-setup__.ts +240 -240
- package/src/handlers/__test-utils__.ts +89 -89
- package/src/handlers/blockers.test.ts +468 -468
- package/src/handlers/blockers.ts +172 -172
- package/src/handlers/bodies-of-work.test.ts +704 -704
- package/src/handlers/bodies-of-work.ts +526 -526
- package/src/handlers/chat.test.ts +185 -185
- package/src/handlers/chat.ts +101 -101
- package/src/handlers/cloud-agents.test.ts +438 -438
- package/src/handlers/cloud-agents.ts +156 -156
- package/src/handlers/connectors.test.ts +834 -834
- package/src/handlers/connectors.ts +229 -229
- package/src/handlers/cost.test.ts +462 -462
- package/src/handlers/cost.ts +285 -285
- package/src/handlers/decisions.test.ts +382 -382
- package/src/handlers/decisions.ts +153 -153
- package/src/handlers/deployment.test.ts +551 -551
- package/src/handlers/deployment.ts +570 -570
- package/src/handlers/discovery.test.ts +206 -206
- package/src/handlers/discovery.ts +433 -433
- package/src/handlers/fallback.test.ts +537 -537
- package/src/handlers/fallback.ts +194 -194
- package/src/handlers/file-checkouts.test.ts +750 -750
- package/src/handlers/file-checkouts.ts +185 -185
- package/src/handlers/findings.test.ts +633 -633
- package/src/handlers/findings.ts +239 -239
- package/src/handlers/git-issues.test.ts +631 -631
- package/src/handlers/git-issues.ts +136 -136
- package/src/handlers/ideas.test.ts +644 -644
- package/src/handlers/ideas.ts +207 -207
- package/src/handlers/index.ts +93 -93
- package/src/handlers/milestones.test.ts +475 -475
- package/src/handlers/milestones.ts +180 -180
- package/src/handlers/organizations.test.ts +826 -826
- package/src/handlers/organizations.ts +315 -315
- package/src/handlers/progress.test.ts +269 -269
- package/src/handlers/progress.ts +77 -77
- package/src/handlers/project.test.ts +546 -546
- package/src/handlers/project.ts +245 -245
- package/src/handlers/requests.test.ts +303 -303
- package/src/handlers/requests.ts +99 -99
- package/src/handlers/roles.test.ts +305 -305
- package/src/handlers/roles.ts +219 -219
- package/src/handlers/session.test.ts +998 -998
- package/src/handlers/session.ts +1105 -1105
- package/src/handlers/sprints.test.ts +732 -732
- package/src/handlers/sprints.ts +537 -537
- package/src/handlers/tasks.test.ts +931 -931
- package/src/handlers/tasks.ts +1144 -1137
- package/src/handlers/tool-categories.test.ts +66 -66
- package/src/handlers/tool-docs.test.ts +511 -511
- package/src/handlers/tool-docs.ts +1595 -1595
- package/src/handlers/types.test.ts +259 -259
- package/src/handlers/types.ts +176 -176
- package/src/handlers/validation.test.ts +582 -582
- package/src/handlers/validation.ts +164 -164
- package/src/handlers/version.ts +63 -63
- package/src/index.test.ts +674 -674
- package/src/index.ts +884 -884
- package/src/setup.test.ts +243 -243
- package/src/setup.ts +410 -410
- package/src/templates/agent-guidelines.ts +233 -233
- package/src/templates/help-content.ts +1751 -1751
- package/src/token-tracking.test.ts +463 -463
- package/src/token-tracking.ts +167 -167
- package/src/tools/blockers.ts +122 -122
- package/src/tools/bodies-of-work.ts +283 -283
- package/src/tools/chat.ts +72 -72
- package/src/tools/cloud-agents.ts +101 -101
- package/src/tools/connectors.ts +191 -191
- package/src/tools/cost.ts +111 -111
- package/src/tools/decisions.ts +111 -111
- package/src/tools/deployment.ts +455 -455
- package/src/tools/discovery.ts +76 -76
- package/src/tools/fallback.ts +111 -111
- package/src/tools/features.ts +154 -154
- package/src/tools/file-checkouts.ts +145 -145
- package/src/tools/findings.ts +101 -101
- package/src/tools/git-issues.ts +130 -130
- package/src/tools/ideas.ts +162 -162
- package/src/tools/index.ts +145 -145
- package/src/tools/milestones.ts +118 -118
- package/src/tools/organizations.ts +224 -224
- package/src/tools/persona-templates.ts +25 -25
- package/src/tools/progress.ts +73 -73
- package/src/tools/project.ts +210 -210
- package/src/tools/requests.ts +68 -68
- package/src/tools/roles.ts +112 -112
- package/src/tools/session.ts +181 -181
- package/src/tools/sprints.ts +298 -298
- package/src/tools/tasks.ts +583 -575
- package/src/tools/tools.test.ts +222 -222
- package/src/tools/types.ts +9 -9
- package/src/tools/validation.ts +75 -75
- package/src/tools/version.ts +34 -34
- package/src/tools/worktrees.ts +66 -66
- package/src/tools.test.ts +416 -416
- package/src/utils.test.ts +1014 -1014
- package/src/utils.ts +586 -586
- package/src/validators.test.ts +223 -223
- package/src/validators.ts +249 -249
- package/src/version.ts +162 -162
- package/tsconfig.json +16 -16
- package/vitest.config.ts +14 -14
- package/dist/tools.d.ts +0 -2
- package/dist/tools.js +0 -3602
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
export const bodiesOfWorkTools = [
|
|
19
19
|
{
|
|
20
20
|
name: 'create_body_of_work',
|
|
21
|
-
description: `Create a new body of work to group tasks into phases (pre/core/post).
|
|
21
|
+
description: `Create a new body of work to group tasks into phases (pre/core/post).
|
|
22
22
|
Bodies of work allow organizing related tasks with optional auto-deployment on completion.`,
|
|
23
23
|
inputSchema: {
|
|
24
24
|
type: 'object',
|
|
@@ -148,7 +148,7 @@ Bodies of work allow organizing related tasks with optional auto-deployment on c
|
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
name: 'add_task_to_body_of_work',
|
|
151
|
-
description: `Add a task to a body of work in a specific phase.
|
|
151
|
+
description: `Add a task to a body of work in a specific phase.
|
|
152
152
|
Phases control execution order: pre tasks run first, then core, then post.`,
|
|
153
153
|
inputSchema: {
|
|
154
154
|
type: 'object',
|
|
@@ -190,7 +190,7 @@ Phases control execution order: pre tasks run first, then core, then post.`,
|
|
|
190
190
|
},
|
|
191
191
|
{
|
|
192
192
|
name: 'activate_body_of_work',
|
|
193
|
-
description: `Activate a draft body of work to start execution.
|
|
193
|
+
description: `Activate a draft body of work to start execution.
|
|
194
194
|
Requires at least one task. Once active, tasks can be worked on following phase order.`,
|
|
195
195
|
inputSchema: {
|
|
196
196
|
type: 'object',
|
|
@@ -205,7 +205,7 @@ Requires at least one task. Once active, tasks can be worked on following phase
|
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
name: 'add_task_dependency',
|
|
208
|
-
description: `Add a dependency between tasks in a body of work.
|
|
208
|
+
description: `Add a dependency between tasks in a body of work.
|
|
209
209
|
The dependent task cannot start until the dependency is completed. Prevents circular dependencies.`,
|
|
210
210
|
inputSchema: {
|
|
211
211
|
type: 'object',
|
|
@@ -263,8 +263,8 @@ The dependent task cannot start until the dependency is completed. Prevents circ
|
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
name: 'get_next_body_of_work_task',
|
|
266
|
-
description: `Get the next available task from a body of work.
|
|
267
|
-
Considers phase order (pre → core → post) and task dependencies.
|
|
266
|
+
description: `Get the next available task from a body of work.
|
|
267
|
+
Considers phase order (pre → core → post) and task dependencies.
|
|
268
268
|
Only returns tasks where all dependencies are completed.`,
|
|
269
269
|
inputSchema: {
|
|
270
270
|
type: 'object',
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
export const cloudAgentTools = [
|
|
9
9
|
{
|
|
10
10
|
name: 'cleanup_stale_cloud_agents',
|
|
11
|
-
description: `Clean up stale cloud agents that failed to start or lost connection.
|
|
12
|
-
|
|
13
|
-
Finds agents stuck in 'starting' status (or optionally 'running' with no heartbeat)
|
|
14
|
-
and marks them as failed. Only operates on the current session's project.
|
|
15
|
-
|
|
16
|
-
Use this when:
|
|
17
|
-
- You see agents stuck in "starting" status on the dashboard
|
|
18
|
-
- Cloud agents failed to spawn but weren't cleaned up
|
|
19
|
-
- You want to clear ghost agents from a previous session
|
|
20
|
-
|
|
11
|
+
description: `Clean up stale cloud agents that failed to start or lost connection.
|
|
12
|
+
|
|
13
|
+
Finds agents stuck in 'starting' status (or optionally 'running' with no heartbeat)
|
|
14
|
+
and marks them as failed. Only operates on the current session's project.
|
|
15
|
+
|
|
16
|
+
Use this when:
|
|
17
|
+
- You see agents stuck in "starting" status on the dashboard
|
|
18
|
+
- Cloud agents failed to spawn but weren't cleaned up
|
|
19
|
+
- You want to clear ghost agents from a previous session
|
|
20
|
+
|
|
21
21
|
SECURITY: This only affects agents in YOUR current project. Cannot access other users' projects.`,
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
@@ -44,9 +44,9 @@ SECURITY: This only affects agents in YOUR current project. Cannot access other
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
name: 'list_cloud_agents',
|
|
47
|
-
description: `List cloud agents for a project.
|
|
48
|
-
|
|
49
|
-
Returns all spawned cloud agents for the project with their current status.
|
|
47
|
+
description: `List cloud agents for a project.
|
|
48
|
+
|
|
49
|
+
Returns all spawned cloud agents for the project with their current status.
|
|
50
50
|
Use this to check the state of cloud agents before/after cleanup.`,
|
|
51
51
|
inputSchema: {
|
|
52
52
|
type: 'object',
|
|
@@ -66,15 +66,15 @@ Use this to check the state of cloud agents before/after cleanup.`,
|
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
name: 'update_agent_status',
|
|
69
|
-
description: `Report what you're currently doing. This updates the status message shown on the dashboard.
|
|
70
|
-
|
|
71
|
-
Call this at key milestones during boot and work:
|
|
72
|
-
- "Installing dependencies..."
|
|
73
|
-
- "Running start_work_session..."
|
|
74
|
-
- "Working on: <task title>"
|
|
75
|
-
- "Running tests..."
|
|
76
|
-
- "Committing changes..."
|
|
77
|
-
|
|
69
|
+
description: `Report what you're currently doing. This updates the status message shown on the dashboard.
|
|
70
|
+
|
|
71
|
+
Call this at key milestones during boot and work:
|
|
72
|
+
- "Installing dependencies..."
|
|
73
|
+
- "Running start_work_session..."
|
|
74
|
+
- "Working on: <task title>"
|
|
75
|
+
- "Running tests..."
|
|
76
|
+
- "Committing changes..."
|
|
77
|
+
|
|
78
78
|
Keep messages short (under 80 chars). The dashboard shows this in real-time.`,
|
|
79
79
|
inputSchema: {
|
|
80
80
|
type: 'object',
|
package/dist/tools/milestones.js
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
export const milestoneTools = [
|
|
12
12
|
{
|
|
13
13
|
name: 'add_milestone',
|
|
14
|
-
description: `Add a milestone to a task.
|
|
15
|
-
Milestones help break down large tasks into smaller trackable steps.
|
|
14
|
+
description: `Add a milestone to a task.
|
|
15
|
+
Milestones help break down large tasks into smaller trackable steps.
|
|
16
16
|
Use this to show progress on complex tasks and help gauge completion.`,
|
|
17
17
|
inputSchema: {
|
|
18
18
|
type: 'object',
|
package/dist/tools/requests.js
CHANGED
|
@@ -45,7 +45,7 @@ export const requestTools = [
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
name: 'answer_question',
|
|
48
|
-
description: `Answer a question from the user. Use this when the user has asked a question via the dashboard.
|
|
48
|
+
description: `Answer a question from the user. Use this when the user has asked a question via the dashboard.
|
|
49
49
|
The answer will be displayed to the user and the question marked as answered.`,
|
|
50
50
|
inputSchema: {
|
|
51
51
|
type: 'object',
|
package/dist/tools/session.js
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
export const sessionTools = [
|
|
15
15
|
{
|
|
16
16
|
name: 'start_work_session',
|
|
17
|
-
description: `CALL THIS FIRST when beginning work on a project.
|
|
18
|
-
Returns session info, persona, role, and next_task. Start the next_task IMMEDIATELY without asking the user.
|
|
19
|
-
|
|
20
|
-
IMPORTANT: If the user gives you direct work that isn't tracked as a task (e.g., "add feature X", "fix bug Y"), you MUST call add_task() first to create a task before starting work. This ensures all work is tracked and visible on the dashboard.
|
|
21
|
-
|
|
17
|
+
description: `CALL THIS FIRST when beginning work on a project.
|
|
18
|
+
Returns session info, persona, role, and next_task. Start the next_task IMMEDIATELY without asking the user.
|
|
19
|
+
|
|
20
|
+
IMPORTANT: If the user gives you direct work that isn't tracked as a task (e.g., "add feature X", "fix bug Y"), you MUST call add_task() first to create a task before starting work. This ensures all work is tracked and visible on the dashboard.
|
|
21
|
+
|
|
22
22
|
Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`,
|
|
23
23
|
inputSchema: {
|
|
24
24
|
type: 'object',
|
|
@@ -61,8 +61,8 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
name: 'confirm_agent_setup',
|
|
64
|
-
description: `Confirm that agent setup is complete for this project. Call this after creating your agent's configuration file (e.g., .claude/CLAUDE.md, .gemini/GEMINI.md).
|
|
65
|
-
|
|
64
|
+
description: `Confirm that agent setup is complete for this project. Call this after creating your agent's configuration file (e.g., .claude/CLAUDE.md, .gemini/GEMINI.md).
|
|
65
|
+
|
|
66
66
|
This marks your agent type as fully onboarded to the project, so you won't receive setup instructions again.`,
|
|
67
67
|
inputSchema: {
|
|
68
68
|
type: 'object',
|
|
@@ -104,10 +104,10 @@ This marks your agent type as fully onboarded to the project, so you won't recei
|
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
name: 'report_token_usage',
|
|
107
|
-
description: `Report actual Claude API token usage for accurate cost tracking.
|
|
108
|
-
|
|
109
|
-
IMPORTANT: MCP can only estimate tokens from tool I/O (~1-5% of actual usage). Call this tool after each API response to report actual usage from the Claude API response headers.
|
|
110
|
-
|
|
107
|
+
description: `Report actual Claude API token usage for accurate cost tracking.
|
|
108
|
+
|
|
109
|
+
IMPORTANT: MCP can only estimate tokens from tool I/O (~1-5% of actual usage). Call this tool after each API response to report actual usage from the Claude API response headers.
|
|
110
|
+
|
|
111
111
|
The Claude API response includes 'usage.input_tokens' and 'usage.output_tokens' - pass those values here for accurate cost attribution.`,
|
|
112
112
|
inputSchema: {
|
|
113
113
|
type: 'object',
|
package/dist/tools/sprints.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
export const sprintTools = [
|
|
18
18
|
{
|
|
19
19
|
name: 'create_sprint',
|
|
20
|
-
description: `Create a new sprint. Sprints are time-bounded bodies of work with velocity tracking.
|
|
20
|
+
description: `Create a new sprint. Sprints are time-bounded bodies of work with velocity tracking.
|
|
21
21
|
Sprints start in 'planning' status where tasks can be added with story points.`,
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
@@ -106,8 +106,8 @@ Sprints start in 'planning' status where tasks can be added with story points.`,
|
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
name: 'get_sprint',
|
|
109
|
-
description: `Get a sprint with all its tasks organized by phase (pre/core/post).
|
|
110
|
-
Includes progress percentage, velocity points, and committed points.
|
|
109
|
+
description: `Get a sprint with all its tasks organized by phase (pre/core/post).
|
|
110
|
+
Includes progress percentage, velocity points, and committed points.
|
|
111
111
|
Use summary_only: true to get task counts and next task instead of full task arrays (saves tokens).`,
|
|
112
112
|
inputSchema: {
|
|
113
113
|
type: 'object',
|
|
@@ -126,7 +126,7 @@ Use summary_only: true to get task counts and next task instead of full task arr
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
name: 'get_sprints',
|
|
129
|
-
description: `List sprints for a project with velocity metrics.
|
|
129
|
+
description: `List sprints for a project with velocity metrics.
|
|
130
130
|
Returns sprints sorted by sprint_number descending (most recent first).`,
|
|
131
131
|
inputSchema: {
|
|
132
132
|
type: 'object',
|
|
@@ -164,7 +164,7 @@ Returns sprints sorted by sprint_number descending (most recent first).`,
|
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
name: 'start_sprint',
|
|
167
|
-
description: `Start a sprint. Transitions from 'planning' to 'active' status.
|
|
167
|
+
description: `Start a sprint. Transitions from 'planning' to 'active' status.
|
|
168
168
|
Locks the committed_points at the current total story points.`,
|
|
169
169
|
inputSchema: {
|
|
170
170
|
type: 'object',
|
|
@@ -179,7 +179,7 @@ Locks the committed_points at the current total story points.`,
|
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
name: 'complete_sprint',
|
|
182
|
-
description: `Complete a sprint. Handles retrospective phase and auto-deployment if configured.
|
|
182
|
+
description: `Complete a sprint. Handles retrospective phase and auto-deployment if configured.
|
|
183
183
|
Status flow: active → in_review → retrospective → completed`,
|
|
184
184
|
inputSchema: {
|
|
185
185
|
type: 'object',
|
|
@@ -202,7 +202,7 @@ Status flow: active → in_review → retrospective → completed`,
|
|
|
202
202
|
},
|
|
203
203
|
{
|
|
204
204
|
name: 'add_task_to_sprint',
|
|
205
|
-
description: `Add a task to a sprint with optional story points.
|
|
205
|
+
description: `Add a task to a sprint with optional story points.
|
|
206
206
|
Tasks can be added during 'planning' status. Story points contribute to committed_points.`,
|
|
207
207
|
inputSchema: {
|
|
208
208
|
type: 'object',
|
|
@@ -248,7 +248,7 @@ Tasks can be added during 'planning' status. Story points contribute to committe
|
|
|
248
248
|
},
|
|
249
249
|
{
|
|
250
250
|
name: 'get_sprint_backlog',
|
|
251
|
-
description: `Get tasks from backlog/pending that can be added to a sprint with pagination.
|
|
251
|
+
description: `Get tasks from backlog/pending that can be added to a sprint with pagination.
|
|
252
252
|
Returns tasks not already assigned to any body of work or sprint.`,
|
|
253
253
|
inputSchema: {
|
|
254
254
|
type: 'object',
|
|
@@ -275,7 +275,7 @@ Returns tasks not already assigned to any body of work or sprint.`,
|
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
name: 'get_sprint_velocity',
|
|
278
|
-
description: `Get velocity metrics for completed sprints.
|
|
278
|
+
description: `Get velocity metrics for completed sprints.
|
|
279
279
|
Returns committed vs completed points and average velocity.`,
|
|
280
280
|
inputSchema: {
|
|
281
281
|
type: 'object',
|
package/dist/tools/tasks.js
CHANGED
|
@@ -164,8 +164,8 @@ export const taskTools = [
|
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
name: 'get_next_task',
|
|
167
|
-
description: `Get highest priority pending task. Start it IMMEDIATELY by calling update_task(task_id, status: "in_progress").
|
|
168
|
-
|
|
167
|
+
description: `Get highest priority pending task. Start it IMMEDIATELY by calling update_task(task_id, status: "in_progress").
|
|
168
|
+
|
|
169
169
|
Do NOT ask the user for permission. Follow the directive in the response.`,
|
|
170
170
|
inputSchema: {
|
|
171
171
|
type: 'object',
|
|
@@ -180,12 +180,12 @@ Do NOT ask the user for permission. Follow the directive in the response.`,
|
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
name: 'add_task',
|
|
183
|
-
description: `Add a new task. Priority 1=highest, 5=lowest. Include estimated_minutes. Use blocking=true for deployment finalization tasks that must complete before other work.
|
|
184
|
-
|
|
185
|
-
WHEN TO USE: If the user gives you work directly (e.g., "implement feature X", "fix this bug") that isn't already tracked as a task in Vibescope, you MUST create a task first using this tool. This ensures:
|
|
186
|
-
- The work is visible on the dashboard
|
|
187
|
-
- Progress can be tracked
|
|
188
|
-
- Other agents won't duplicate the work
|
|
183
|
+
description: `Add a new task. Priority 1=highest, 5=lowest. Include estimated_minutes. Use blocking=true for deployment finalization tasks that must complete before other work.
|
|
184
|
+
|
|
185
|
+
WHEN TO USE: If the user gives you work directly (e.g., "implement feature X", "fix this bug") that isn't already tracked as a task in Vibescope, you MUST create a task first using this tool. This ensures:
|
|
186
|
+
- The work is visible on the dashboard
|
|
187
|
+
- Progress can be tracked
|
|
188
|
+
- Other agents won't duplicate the work
|
|
189
189
|
- The human can see what you're working on`,
|
|
190
190
|
inputSchema: {
|
|
191
191
|
type: 'object',
|
|
@@ -226,23 +226,27 @@ WHEN TO USE: If the user gives you work directly (e.g., "implement feature X", "
|
|
|
226
226
|
type: 'string',
|
|
227
227
|
description: 'Pre-assign this task to a specific agent by persona name. Only that agent will pick it up via get_next_task.',
|
|
228
228
|
},
|
|
229
|
+
is_human_task: {
|
|
230
|
+
type: 'boolean',
|
|
231
|
+
description: 'When true, only humans can claim and perform this task. Agents will skip it in get_next_task.',
|
|
232
|
+
},
|
|
229
233
|
},
|
|
230
234
|
required: ['project_id', 'title'],
|
|
231
235
|
},
|
|
232
236
|
},
|
|
233
237
|
{
|
|
234
238
|
name: 'update_task',
|
|
235
|
-
description: `Update task status, progress, or details. Include progress_note with progress_percentage.
|
|
236
|
-
|
|
237
|
-
CRITICAL - WORKTREE REQUIRED: For projects using github-flow or git-flow, you MUST use a git worktree to isolate your work. This prevents conflicts with other agents working on the same repository.
|
|
238
|
-
|
|
239
|
-
When setting status to "in_progress":
|
|
240
|
-
1. Create worktree FIRST: git worktree add ../PROJECT-PERSONA-task-desc -b feature/TASKID-description BASE_BRANCH
|
|
241
|
-
2. cd into the worktree directory
|
|
242
|
-
3. THEN call update_task with git_branch AND worktree_path
|
|
243
|
-
|
|
244
|
-
Example: update_task(task_id, status: "in_progress", git_branch: "feature/abc123-add-login", worktree_path: "../MyProject-Edge-add-login")
|
|
245
|
-
|
|
239
|
+
description: `Update task status, progress, or details. Include progress_note with progress_percentage.
|
|
240
|
+
|
|
241
|
+
CRITICAL - WORKTREE REQUIRED: For projects using github-flow or git-flow, you MUST use a git worktree to isolate your work. This prevents conflicts with other agents working on the same repository.
|
|
242
|
+
|
|
243
|
+
When setting status to "in_progress":
|
|
244
|
+
1. Create worktree FIRST: git worktree add ../PROJECT-PERSONA-task-desc -b feature/TASKID-description BASE_BRANCH
|
|
245
|
+
2. cd into the worktree directory
|
|
246
|
+
3. THEN call update_task with git_branch AND worktree_path
|
|
247
|
+
|
|
248
|
+
Example: update_task(task_id, status: "in_progress", git_branch: "feature/abc123-add-login", worktree_path: "../MyProject-Edge-add-login")
|
|
249
|
+
|
|
246
250
|
For projects without git branching (trunk-based or none), use skip_worktree_requirement: true.`,
|
|
247
251
|
inputSchema: {
|
|
248
252
|
type: 'object',
|
|
@@ -300,6 +304,10 @@ For projects without git branching (trunk-based or none), use skip_worktree_requ
|
|
|
300
304
|
type: ['string', 'null'],
|
|
301
305
|
description: 'Pre-assign this task to a specific agent by persona name. Set to null to unassign. Only the assigned agent will pick it up via get_next_task.',
|
|
302
306
|
},
|
|
307
|
+
is_human_task: {
|
|
308
|
+
type: 'boolean',
|
|
309
|
+
description: 'When true, only humans can claim and perform this task. Agents will skip it in get_next_task.',
|
|
310
|
+
},
|
|
303
311
|
skip_worktree_requirement: {
|
|
304
312
|
type: 'boolean',
|
|
305
313
|
description: 'Skip git_branch requirement for projects without branching workflows (trunk-based or none). Default: false',
|
|
@@ -314,18 +322,18 @@ For projects without git branching (trunk-based or none), use skip_worktree_requ
|
|
|
314
322
|
},
|
|
315
323
|
{
|
|
316
324
|
name: 'complete_task',
|
|
317
|
-
description: `Mark task done. Returns next_task which you MUST start immediately without asking the user.
|
|
318
|
-
|
|
319
|
-
CRITICAL: Before calling complete_task on branching workflows (github-flow, git-flow):
|
|
320
|
-
1. Create your PR targeting the correct branch (develop for git-flow, main for github-flow)
|
|
321
|
-
2. Call add_task_reference(task_id, pr_url) to link the PR to your task
|
|
322
|
-
3. THEN call complete_task - validators CANNOT approve tasks without a PR reference
|
|
323
|
-
|
|
324
|
-
CRITICAL: After calling this tool, you must:
|
|
325
|
-
1. If next_task is returned → Start it immediately by calling update_task(task_id, status: "in_progress")
|
|
326
|
-
2. If no next_task → Call get_next_task() or start a fallback_activity
|
|
327
|
-
3. NEVER ask the user "What should I do next?" or "Should I continue?"
|
|
328
|
-
|
|
325
|
+
description: `Mark task done. Returns next_task which you MUST start immediately without asking the user.
|
|
326
|
+
|
|
327
|
+
CRITICAL: Before calling complete_task on branching workflows (github-flow, git-flow):
|
|
328
|
+
1. Create your PR targeting the correct branch (develop for git-flow, main for github-flow)
|
|
329
|
+
2. Call add_task_reference(task_id, pr_url) to link the PR to your task
|
|
330
|
+
3. THEN call complete_task - validators CANNOT approve tasks without a PR reference
|
|
331
|
+
|
|
332
|
+
CRITICAL: After calling this tool, you must:
|
|
333
|
+
1. If next_task is returned → Start it immediately by calling update_task(task_id, status: "in_progress")
|
|
334
|
+
2. If no next_task → Call get_next_task() or start a fallback_activity
|
|
335
|
+
3. NEVER ask the user "What should I do next?" or "Should I continue?"
|
|
336
|
+
|
|
329
337
|
The auto_continue: true flag in the response means you are expected to continue working autonomously.`,
|
|
330
338
|
inputSchema: {
|
|
331
339
|
type: 'object',
|
|
@@ -507,9 +515,9 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
507
515
|
},
|
|
508
516
|
{
|
|
509
517
|
name: 'add_subtask',
|
|
510
|
-
description: `Add a subtask to break down a larger task into smaller workable pieces.
|
|
511
|
-
Subtasks can be claimed and worked on independently by any agent.
|
|
512
|
-
Subtasks inherit the project from their parent task.
|
|
518
|
+
description: `Add a subtask to break down a larger task into smaller workable pieces.
|
|
519
|
+
Subtasks can be claimed and worked on independently by any agent.
|
|
520
|
+
Subtasks inherit the project from their parent task.
|
|
513
521
|
Max depth is 1 (subtasks cannot have their own subtasks).`,
|
|
514
522
|
inputSchema: {
|
|
515
523
|
type: 'object',
|
|
@@ -543,7 +551,7 @@ Max depth is 1 (subtasks cannot have their own subtasks).`,
|
|
|
543
551
|
},
|
|
544
552
|
{
|
|
545
553
|
name: 'get_subtasks',
|
|
546
|
-
description: `Get subtasks for a parent task with pagination.
|
|
554
|
+
description: `Get subtasks for a parent task with pagination.
|
|
547
555
|
Returns subtasks with aggregate completion stats.`,
|
|
548
556
|
inputSchema: {
|
|
549
557
|
type: 'object',
|
package/dist/tools/worktrees.js
CHANGED
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
export const worktreeTools = [
|
|
9
9
|
{
|
|
10
10
|
name: 'get_stale_worktrees',
|
|
11
|
-
description: `Get worktrees that need cleanup.
|
|
12
|
-
|
|
13
|
-
Returns tasks with worktree_path set where:
|
|
14
|
-
- Task is completed or cancelled (worktree should have been cleaned up)
|
|
15
|
-
- Task has been abandoned (no activity for 24+ hours while in_progress)
|
|
16
|
-
|
|
17
|
-
IMPORTANT: Pass hostname (os.hostname()) to only see worktrees created on THIS machine.
|
|
18
|
-
Worktrees created on other machines cannot be removed locally.
|
|
19
|
-
|
|
20
|
-
For each stale worktree:
|
|
21
|
-
1. Run: git worktree remove <worktree_path>
|
|
11
|
+
description: `Get worktrees that need cleanup.
|
|
12
|
+
|
|
13
|
+
Returns tasks with worktree_path set where:
|
|
14
|
+
- Task is completed or cancelled (worktree should have been cleaned up)
|
|
15
|
+
- Task has been abandoned (no activity for 24+ hours while in_progress)
|
|
16
|
+
|
|
17
|
+
IMPORTANT: Pass hostname (os.hostname()) to only see worktrees created on THIS machine.
|
|
18
|
+
Worktrees created on other machines cannot be removed locally.
|
|
19
|
+
|
|
20
|
+
For each stale worktree:
|
|
21
|
+
1. Run: git worktree remove <worktree_path>
|
|
22
22
|
2. Call: clear_worktree_path(task_id)`,
|
|
23
23
|
inputSchema: {
|
|
24
24
|
type: 'object',
|
|
@@ -45,9 +45,9 @@ For each stale worktree:
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
name: 'clear_worktree_path',
|
|
48
|
-
description: `Clear the worktree_path from a task after cleanup.
|
|
49
|
-
|
|
50
|
-
Call this AFTER removing the worktree with git worktree remove.
|
|
48
|
+
description: `Clear the worktree_path from a task after cleanup.
|
|
49
|
+
|
|
50
|
+
Call this AFTER removing the worktree with git worktree remove.
|
|
51
51
|
This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
52
52
|
inputSchema: {
|
|
53
53
|
type: 'object',
|
package/dist/utils.js
CHANGED
|
@@ -141,17 +141,17 @@ export const FALLBACK_ACTIVITIES = [
|
|
|
141
141
|
activity: 'worktree_cleanup',
|
|
142
142
|
title: 'Clean up stale worktrees',
|
|
143
143
|
description: 'Find and remove git worktrees from completed or abandoned tasks.',
|
|
144
|
-
prompt: `Clean up stale git worktrees to reclaim disk space and prevent confusion:
|
|
145
|
-
|
|
146
|
-
1. Call get_stale_worktrees(project_id) to find worktrees needing cleanup
|
|
147
|
-
2. For each stale worktree returned:
|
|
148
|
-
a. Check if the worktree directory exists: ls -la <worktree_path>
|
|
149
|
-
b. If it exists, remove it: git worktree remove <worktree_path>
|
|
150
|
-
c. If removal fails (untracked files), use: git worktree remove --force <worktree_path>
|
|
151
|
-
d. Call clear_worktree_path(task_id) to mark it as cleaned up
|
|
152
|
-
3. Run 'git worktree list' to verify cleanup
|
|
153
|
-
4. Log any issues encountered with add_blocker if worktrees cannot be removed
|
|
154
|
-
|
|
144
|
+
prompt: `Clean up stale git worktrees to reclaim disk space and prevent confusion:
|
|
145
|
+
|
|
146
|
+
1. Call get_stale_worktrees(project_id) to find worktrees needing cleanup
|
|
147
|
+
2. For each stale worktree returned:
|
|
148
|
+
a. Check if the worktree directory exists: ls -la <worktree_path>
|
|
149
|
+
b. If it exists, remove it: git worktree remove <worktree_path>
|
|
150
|
+
c. If removal fails (untracked files), use: git worktree remove --force <worktree_path>
|
|
151
|
+
d. Call clear_worktree_path(task_id) to mark it as cleaned up
|
|
152
|
+
3. Run 'git worktree list' to verify cleanup
|
|
153
|
+
4. Log any issues encountered with add_blocker if worktrees cannot be removed
|
|
154
|
+
|
|
155
155
|
This prevents disk bloat from accumulated worktrees and keeps the workspace clean.`,
|
|
156
156
|
},
|
|
157
157
|
];
|