@vibescope/mcp-server 0.4.5 → 0.4.7
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/project.d.ts +1 -0
- package/dist/api-client.d.ts +4 -1
- package/dist/api-client.js +24 -7
- package/dist/cli-init.js +25 -24
- package/dist/cli.js +26 -26
- package/dist/handlers/chat.d.ts +2 -0
- package/dist/handlers/chat.js +25 -0
- package/dist/handlers/discovery.js +12 -0
- package/dist/handlers/project.js +4 -2
- package/dist/handlers/tool-docs.js +1203 -1137
- package/dist/handlers/version.js +1 -1
- package/dist/index.js +159 -87
- package/dist/setup.js +13 -7
- package/dist/templates/agent-guidelines.d.ts +1 -1
- package/dist/templates/agent-guidelines.js +205 -187
- package/dist/templates/help-content.js +1621 -1621
- package/dist/tools/bodies-of-work.js +6 -6
- package/dist/tools/chat.d.ts +1 -0
- package/dist/tools/chat.js +24 -0
- package/dist/tools/cloud-agents.js +22 -22
- package/dist/tools/features.d.ts +13 -0
- package/dist/tools/features.js +151 -0
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.js +4 -1
- package/dist/tools/milestones.js +2 -2
- package/dist/tools/project.js +4 -0
- 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 +35 -35
- package/dist/tools/worktrees.js +14 -14
- package/dist/tools.d.ts +2 -0
- package/dist/tools.js +3602 -0
- package/dist/utils.js +11 -11
- package/dist/version.d.ts +9 -3
- package/dist/version.js +56 -8
- package/docs/TOOLS.md +2663 -2559
- 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 +180 -179
- 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 +450 -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 +2723 -2706
- package/src/cli-init.ts +558 -557
- 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 -69
- 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 +427 -415
- 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 +242 -239
- 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 +1133 -1133
- package/src/handlers/tool-categories.test.ts +66 -66
- package/src/handlers/tool-docs.test.ts +511 -511
- package/src/handlers/tool-docs.ts +1571 -1499
- 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 -807
- package/src/setup.test.ts +243 -233
- package/src/setup.ts +410 -404
- package/src/templates/agent-guidelines.ts +233 -215
- 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 -46
- 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 -0
- 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 +141 -137
- package/src/tools/milestones.ts +118 -118
- package/src/tools/organizations.ts +224 -224
- package/src/tools/progress.ts +73 -73
- package/src/tools/project.ts +206 -202
- 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 +550 -550
- 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 -109
- package/tsconfig.json +16 -16
- package/vitest.config.ts +14 -14
package/src/tools/git-issues.ts
CHANGED
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Issue Tool Definitions
|
|
3
|
-
*
|
|
4
|
-
* Tools for managing git-related issues:
|
|
5
|
-
* - add_git_issue
|
|
6
|
-
* - resolve_git_issue
|
|
7
|
-
* - get_git_issues
|
|
8
|
-
* - delete_git_issue
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { Tool } from './types.js';
|
|
12
|
-
|
|
13
|
-
export const gitIssueTools: Tool[] = [
|
|
14
|
-
{
|
|
15
|
-
name: 'add_git_issue',
|
|
16
|
-
description: `Record a git-related issue (merge conflict, push failure, etc.). Auto-created by claim_validation when conflicts detected.`,
|
|
17
|
-
inputSchema: {
|
|
18
|
-
type: 'object',
|
|
19
|
-
properties: {
|
|
20
|
-
project_id: {
|
|
21
|
-
type: 'string',
|
|
22
|
-
description: 'Project UUID',
|
|
23
|
-
},
|
|
24
|
-
issue_type: {
|
|
25
|
-
type: 'string',
|
|
26
|
-
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
27
|
-
description: 'Type of git issue',
|
|
28
|
-
},
|
|
29
|
-
branch: {
|
|
30
|
-
type: 'string',
|
|
31
|
-
description: 'Branch where the issue occurred',
|
|
32
|
-
},
|
|
33
|
-
target_branch: {
|
|
34
|
-
type: 'string',
|
|
35
|
-
description: 'Target branch for merge/rebase (optional)',
|
|
36
|
-
},
|
|
37
|
-
pr_url: {
|
|
38
|
-
type: 'string',
|
|
39
|
-
description: 'Pull request URL if applicable (optional)',
|
|
40
|
-
},
|
|
41
|
-
conflicting_files: {
|
|
42
|
-
type: 'array',
|
|
43
|
-
items: { type: 'string' },
|
|
44
|
-
description: 'List of files with conflicts (optional)',
|
|
45
|
-
},
|
|
46
|
-
error_message: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
description: 'Error message from git operation (optional)',
|
|
49
|
-
},
|
|
50
|
-
task_id: {
|
|
51
|
-
type: 'string',
|
|
52
|
-
description: 'Related task UUID (optional)',
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
required: ['project_id', 'issue_type', 'branch'],
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'resolve_git_issue',
|
|
60
|
-
description: `Mark a git issue as resolved.`,
|
|
61
|
-
inputSchema: {
|
|
62
|
-
type: 'object',
|
|
63
|
-
properties: {
|
|
64
|
-
git_issue_id: {
|
|
65
|
-
type: 'string',
|
|
66
|
-
description: 'Git issue UUID',
|
|
67
|
-
},
|
|
68
|
-
resolution_note: {
|
|
69
|
-
type: 'string',
|
|
70
|
-
description: 'How the issue was resolved (optional)',
|
|
71
|
-
},
|
|
72
|
-
auto_resolved: {
|
|
73
|
-
type: 'boolean',
|
|
74
|
-
description: 'Whether this was auto-resolved (e.g., PR became mergeable)',
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
required: ['git_issue_id'],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: 'get_git_issues',
|
|
82
|
-
description: `Get git issues for a project, optionally filtered by status, type, or branch.`,
|
|
83
|
-
inputSchema: {
|
|
84
|
-
type: 'object',
|
|
85
|
-
properties: {
|
|
86
|
-
project_id: {
|
|
87
|
-
type: 'string',
|
|
88
|
-
description: 'Project UUID',
|
|
89
|
-
},
|
|
90
|
-
status: {
|
|
91
|
-
type: 'string',
|
|
92
|
-
enum: ['open', 'resolved'],
|
|
93
|
-
description: 'Filter by status (default: open)',
|
|
94
|
-
},
|
|
95
|
-
issue_type: {
|
|
96
|
-
type: 'string',
|
|
97
|
-
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
98
|
-
description: 'Filter by issue type (optional)',
|
|
99
|
-
},
|
|
100
|
-
branch: {
|
|
101
|
-
type: 'string',
|
|
102
|
-
description: 'Filter by branch (optional)',
|
|
103
|
-
},
|
|
104
|
-
limit: {
|
|
105
|
-
type: 'number',
|
|
106
|
-
description: 'Max issues to return (default: 50)',
|
|
107
|
-
},
|
|
108
|
-
offset: {
|
|
109
|
-
type: 'number',
|
|
110
|
-
description: 'Number of issues to skip for pagination (default 0)',
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
required: ['project_id'],
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
name: 'delete_git_issue',
|
|
118
|
-
description: `Delete a git issue.`,
|
|
119
|
-
inputSchema: {
|
|
120
|
-
type: 'object',
|
|
121
|
-
properties: {
|
|
122
|
-
git_issue_id: {
|
|
123
|
-
type: 'string',
|
|
124
|
-
description: 'Git issue UUID',
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
required: ['git_issue_id'],
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
];
|
|
1
|
+
/**
|
|
2
|
+
* Git Issue Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Tools for managing git-related issues:
|
|
5
|
+
* - add_git_issue
|
|
6
|
+
* - resolve_git_issue
|
|
7
|
+
* - get_git_issues
|
|
8
|
+
* - delete_git_issue
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type { Tool } from './types.js';
|
|
12
|
+
|
|
13
|
+
export const gitIssueTools: Tool[] = [
|
|
14
|
+
{
|
|
15
|
+
name: 'add_git_issue',
|
|
16
|
+
description: `Record a git-related issue (merge conflict, push failure, etc.). Auto-created by claim_validation when conflicts detected.`,
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
project_id: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Project UUID',
|
|
23
|
+
},
|
|
24
|
+
issue_type: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
27
|
+
description: 'Type of git issue',
|
|
28
|
+
},
|
|
29
|
+
branch: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Branch where the issue occurred',
|
|
32
|
+
},
|
|
33
|
+
target_branch: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Target branch for merge/rebase (optional)',
|
|
36
|
+
},
|
|
37
|
+
pr_url: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Pull request URL if applicable (optional)',
|
|
40
|
+
},
|
|
41
|
+
conflicting_files: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
items: { type: 'string' },
|
|
44
|
+
description: 'List of files with conflicts (optional)',
|
|
45
|
+
},
|
|
46
|
+
error_message: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
description: 'Error message from git operation (optional)',
|
|
49
|
+
},
|
|
50
|
+
task_id: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
description: 'Related task UUID (optional)',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
required: ['project_id', 'issue_type', 'branch'],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'resolve_git_issue',
|
|
60
|
+
description: `Mark a git issue as resolved.`,
|
|
61
|
+
inputSchema: {
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
git_issue_id: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: 'Git issue UUID',
|
|
67
|
+
},
|
|
68
|
+
resolution_note: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
description: 'How the issue was resolved (optional)',
|
|
71
|
+
},
|
|
72
|
+
auto_resolved: {
|
|
73
|
+
type: 'boolean',
|
|
74
|
+
description: 'Whether this was auto-resolved (e.g., PR became mergeable)',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
required: ['git_issue_id'],
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'get_git_issues',
|
|
82
|
+
description: `Get git issues for a project, optionally filtered by status, type, or branch.`,
|
|
83
|
+
inputSchema: {
|
|
84
|
+
type: 'object',
|
|
85
|
+
properties: {
|
|
86
|
+
project_id: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
description: 'Project UUID',
|
|
89
|
+
},
|
|
90
|
+
status: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
enum: ['open', 'resolved'],
|
|
93
|
+
description: 'Filter by status (default: open)',
|
|
94
|
+
},
|
|
95
|
+
issue_type: {
|
|
96
|
+
type: 'string',
|
|
97
|
+
enum: ['merge_conflict', 'push_failed', 'rebase_needed', 'branch_diverged', 'pr_not_mergeable'],
|
|
98
|
+
description: 'Filter by issue type (optional)',
|
|
99
|
+
},
|
|
100
|
+
branch: {
|
|
101
|
+
type: 'string',
|
|
102
|
+
description: 'Filter by branch (optional)',
|
|
103
|
+
},
|
|
104
|
+
limit: {
|
|
105
|
+
type: 'number',
|
|
106
|
+
description: 'Max issues to return (default: 50)',
|
|
107
|
+
},
|
|
108
|
+
offset: {
|
|
109
|
+
type: 'number',
|
|
110
|
+
description: 'Number of issues to skip for pagination (default 0)',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
required: ['project_id'],
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'delete_git_issue',
|
|
118
|
+
description: `Delete a git issue.`,
|
|
119
|
+
inputSchema: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
properties: {
|
|
122
|
+
git_issue_id: {
|
|
123
|
+
type: 'string',
|
|
124
|
+
description: 'Git issue UUID',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
required: ['git_issue_id'],
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
];
|
package/src/tools/ideas.ts
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Idea Tool Definitions
|
|
3
|
-
*
|
|
4
|
-
* Tools for managing improvement ideas:
|
|
5
|
-
* - add_idea
|
|
6
|
-
* - update_idea
|
|
7
|
-
* - get_idea
|
|
8
|
-
* - get_ideas
|
|
9
|
-
* - delete_idea
|
|
10
|
-
* - convert_idea_to_task
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { Tool } from './types.js';
|
|
14
|
-
|
|
15
|
-
export const ideaTools: Tool[] = [
|
|
16
|
-
{
|
|
17
|
-
name: 'add_idea',
|
|
18
|
-
description: `Record an idea for improvements or features. Starts as 'raw', can progress to 'shipped'.`,
|
|
19
|
-
inputSchema: {
|
|
20
|
-
type: 'object',
|
|
21
|
-
properties: {
|
|
22
|
-
project_id: {
|
|
23
|
-
type: 'string',
|
|
24
|
-
description: 'Project UUID',
|
|
25
|
-
},
|
|
26
|
-
title: {
|
|
27
|
-
type: 'string',
|
|
28
|
-
description: 'Idea title',
|
|
29
|
-
},
|
|
30
|
-
description: {
|
|
31
|
-
type: 'string',
|
|
32
|
-
description: 'Detailed description',
|
|
33
|
-
},
|
|
34
|
-
status: {
|
|
35
|
-
type: 'string',
|
|
36
|
-
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
37
|
-
description: 'Development stage (default: raw)',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
required: ['project_id', 'title'],
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'update_idea',
|
|
45
|
-
description: `Update an idea's status or details.`,
|
|
46
|
-
inputSchema: {
|
|
47
|
-
type: 'object',
|
|
48
|
-
properties: {
|
|
49
|
-
idea_id: {
|
|
50
|
-
type: 'string',
|
|
51
|
-
description: 'Idea UUID',
|
|
52
|
-
},
|
|
53
|
-
title: {
|
|
54
|
-
type: 'string',
|
|
55
|
-
description: 'Updated title',
|
|
56
|
-
},
|
|
57
|
-
description: {
|
|
58
|
-
type: 'string',
|
|
59
|
-
description: 'Updated description',
|
|
60
|
-
},
|
|
61
|
-
status: {
|
|
62
|
-
type: 'string',
|
|
63
|
-
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
64
|
-
description: 'New development stage',
|
|
65
|
-
},
|
|
66
|
-
doc_url: {
|
|
67
|
-
type: 'string',
|
|
68
|
-
description: 'URL to feature documentation/specification',
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
required: ['idea_id'],
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
name: 'get_idea',
|
|
76
|
-
description: `Get a single idea by ID. More token-efficient than get_ideas when you need details for a specific idea.`,
|
|
77
|
-
inputSchema: {
|
|
78
|
-
type: 'object',
|
|
79
|
-
properties: {
|
|
80
|
-
idea_id: {
|
|
81
|
-
type: 'string',
|
|
82
|
-
description: 'Idea UUID',
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
required: ['idea_id'],
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'get_ideas',
|
|
90
|
-
description: `Get recorded ideas for a project, optionally filtered by status.`,
|
|
91
|
-
inputSchema: {
|
|
92
|
-
type: 'object',
|
|
93
|
-
properties: {
|
|
94
|
-
project_id: {
|
|
95
|
-
type: 'string',
|
|
96
|
-
description: 'Project UUID',
|
|
97
|
-
},
|
|
98
|
-
status: {
|
|
99
|
-
type: 'string',
|
|
100
|
-
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
101
|
-
description: 'Filter by status (optional)',
|
|
102
|
-
},
|
|
103
|
-
limit: {
|
|
104
|
-
type: 'number',
|
|
105
|
-
description: 'Max number of ideas to return (default 10, max 100)',
|
|
106
|
-
},
|
|
107
|
-
offset: {
|
|
108
|
-
type: 'number',
|
|
109
|
-
description: 'Number of ideas to skip for pagination (default 0)',
|
|
110
|
-
},
|
|
111
|
-
search_query: {
|
|
112
|
-
type: 'string',
|
|
113
|
-
description: 'Search ideas by title or description',
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
required: ['project_id'],
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
name: 'delete_idea',
|
|
121
|
-
description: `Delete an idea.`,
|
|
122
|
-
inputSchema: {
|
|
123
|
-
type: 'object',
|
|
124
|
-
properties: {
|
|
125
|
-
idea_id: {
|
|
126
|
-
type: 'string',
|
|
127
|
-
description: 'Idea UUID',
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
required: ['idea_id'],
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
name: 'convert_idea_to_task',
|
|
135
|
-
description: `Convert an idea to a task. Creates a task from the idea's title and description, links them, and optionally updates the idea status to 'in_development'. Useful for planned ideas that are ready for implementation.`,
|
|
136
|
-
inputSchema: {
|
|
137
|
-
type: 'object',
|
|
138
|
-
properties: {
|
|
139
|
-
idea_id: {
|
|
140
|
-
type: 'string',
|
|
141
|
-
description: 'Idea UUID to convert',
|
|
142
|
-
},
|
|
143
|
-
priority: {
|
|
144
|
-
type: 'number',
|
|
145
|
-
minimum: 1,
|
|
146
|
-
maximum: 5,
|
|
147
|
-
description: 'Task priority 1-5 (default: 3, 1 = highest)',
|
|
148
|
-
},
|
|
149
|
-
estimated_minutes: {
|
|
150
|
-
type: 'number',
|
|
151
|
-
minimum: 1,
|
|
152
|
-
description: 'Estimated time to complete in minutes',
|
|
153
|
-
},
|
|
154
|
-
update_status: {
|
|
155
|
-
type: 'boolean',
|
|
156
|
-
description: "Update idea status to 'in_development' (default: true)",
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
required: ['idea_id'],
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
];
|
|
1
|
+
/**
|
|
2
|
+
* Idea Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Tools for managing improvement ideas:
|
|
5
|
+
* - add_idea
|
|
6
|
+
* - update_idea
|
|
7
|
+
* - get_idea
|
|
8
|
+
* - get_ideas
|
|
9
|
+
* - delete_idea
|
|
10
|
+
* - convert_idea_to_task
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { Tool } from './types.js';
|
|
14
|
+
|
|
15
|
+
export const ideaTools: Tool[] = [
|
|
16
|
+
{
|
|
17
|
+
name: 'add_idea',
|
|
18
|
+
description: `Record an idea for improvements or features. Starts as 'raw', can progress to 'shipped'.`,
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
project_id: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Project UUID',
|
|
25
|
+
},
|
|
26
|
+
title: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Idea title',
|
|
29
|
+
},
|
|
30
|
+
description: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Detailed description',
|
|
33
|
+
},
|
|
34
|
+
status: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
37
|
+
description: 'Development stage (default: raw)',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
required: ['project_id', 'title'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'update_idea',
|
|
45
|
+
description: `Update an idea's status or details.`,
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
properties: {
|
|
49
|
+
idea_id: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
description: 'Idea UUID',
|
|
52
|
+
},
|
|
53
|
+
title: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
description: 'Updated title',
|
|
56
|
+
},
|
|
57
|
+
description: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Updated description',
|
|
60
|
+
},
|
|
61
|
+
status: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
64
|
+
description: 'New development stage',
|
|
65
|
+
},
|
|
66
|
+
doc_url: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: 'URL to feature documentation/specification',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
required: ['idea_id'],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'get_idea',
|
|
76
|
+
description: `Get a single idea by ID. More token-efficient than get_ideas when you need details for a specific idea.`,
|
|
77
|
+
inputSchema: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {
|
|
80
|
+
idea_id: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'Idea UUID',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
required: ['idea_id'],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'get_ideas',
|
|
90
|
+
description: `Get recorded ideas for a project, optionally filtered by status.`,
|
|
91
|
+
inputSchema: {
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: {
|
|
94
|
+
project_id: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'Project UUID',
|
|
97
|
+
},
|
|
98
|
+
status: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
enum: ['raw', 'exploring', 'planned', 'in_development', 'shipped'],
|
|
101
|
+
description: 'Filter by status (optional)',
|
|
102
|
+
},
|
|
103
|
+
limit: {
|
|
104
|
+
type: 'number',
|
|
105
|
+
description: 'Max number of ideas to return (default 10, max 100)',
|
|
106
|
+
},
|
|
107
|
+
offset: {
|
|
108
|
+
type: 'number',
|
|
109
|
+
description: 'Number of ideas to skip for pagination (default 0)',
|
|
110
|
+
},
|
|
111
|
+
search_query: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
description: 'Search ideas by title or description',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
required: ['project_id'],
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: 'delete_idea',
|
|
121
|
+
description: `Delete an idea.`,
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: 'object',
|
|
124
|
+
properties: {
|
|
125
|
+
idea_id: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
description: 'Idea UUID',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
required: ['idea_id'],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'convert_idea_to_task',
|
|
135
|
+
description: `Convert an idea to a task. Creates a task from the idea's title and description, links them, and optionally updates the idea status to 'in_development'. Useful for planned ideas that are ready for implementation.`,
|
|
136
|
+
inputSchema: {
|
|
137
|
+
type: 'object',
|
|
138
|
+
properties: {
|
|
139
|
+
idea_id: {
|
|
140
|
+
type: 'string',
|
|
141
|
+
description: 'Idea UUID to convert',
|
|
142
|
+
},
|
|
143
|
+
priority: {
|
|
144
|
+
type: 'number',
|
|
145
|
+
minimum: 1,
|
|
146
|
+
maximum: 5,
|
|
147
|
+
description: 'Task priority 1-5 (default: 3, 1 = highest)',
|
|
148
|
+
},
|
|
149
|
+
estimated_minutes: {
|
|
150
|
+
type: 'number',
|
|
151
|
+
minimum: 1,
|
|
152
|
+
description: 'Estimated time to complete in minutes',
|
|
153
|
+
},
|
|
154
|
+
update_status: {
|
|
155
|
+
type: 'boolean',
|
|
156
|
+
description: "Update idea status to 'in_development' (default: true)",
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
required: ['idea_id'],
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
];
|