@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/handlers/requests.ts
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Requests Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles user request handling:
|
|
5
|
-
* - get_pending_requests
|
|
6
|
-
* - acknowledge_request
|
|
7
|
-
* - answer_question
|
|
8
|
-
*
|
|
9
|
-
* MIGRATED: Uses Vibescope API client instead of direct Supabase
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import type { Handler, HandlerRegistry } from './types.js';
|
|
13
|
-
import { parseArgs, uuidValidator } from '../validators.js';
|
|
14
|
-
import { getApiClient } from '../api-client.js';
|
|
15
|
-
|
|
16
|
-
// Argument schemas for type-safe parsing
|
|
17
|
-
const getPendingRequestsSchema = {
|
|
18
|
-
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
19
|
-
limit: { type: 'number' as const, default: 50 },
|
|
20
|
-
offset: { type: 'number' as const, default: 0 },
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const acknowledgeRequestSchema = {
|
|
24
|
-
request_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const answerQuestionSchema = {
|
|
28
|
-
request_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
29
|
-
answer: { type: 'string' as const, required: true as const },
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const getPendingRequests: Handler = async (args, ctx) => {
|
|
33
|
-
const { project_id, limit, offset } = parseArgs(args, getPendingRequestsSchema);
|
|
34
|
-
|
|
35
|
-
const { session } = ctx;
|
|
36
|
-
const apiClient = getApiClient();
|
|
37
|
-
|
|
38
|
-
const response = await apiClient.getPendingRequests(project_id, session.currentSessionId || undefined, Math.min(limit ?? 50, 50), offset);
|
|
39
|
-
|
|
40
|
-
if (!response.ok) {
|
|
41
|
-
return { result: { error: response.error || 'Failed to get pending requests' }, isError: true };
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return {
|
|
45
|
-
result: {
|
|
46
|
-
requests: response.data?.requests || [],
|
|
47
|
-
total_count: response.data?.total_count || 0,
|
|
48
|
-
has_more: response.data?.has_more || false,
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export const acknowledgeRequest: Handler = async (args, ctx) => {
|
|
54
|
-
const { request_id } = parseArgs(args, acknowledgeRequestSchema);
|
|
55
|
-
|
|
56
|
-
const { session } = ctx;
|
|
57
|
-
const apiClient = getApiClient();
|
|
58
|
-
|
|
59
|
-
const response = await apiClient.acknowledgeRequest(request_id, session.currentSessionId || undefined);
|
|
60
|
-
|
|
61
|
-
if (!response.ok) {
|
|
62
|
-
return { result: { error: response.error || 'Failed to acknowledge request' }, isError: true };
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
result: {
|
|
67
|
-
success: true,
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const answerQuestion: Handler = async (args, ctx) => {
|
|
73
|
-
const { request_id, answer } = parseArgs(args, answerQuestionSchema);
|
|
74
|
-
|
|
75
|
-
const { session } = ctx;
|
|
76
|
-
const apiClient = getApiClient();
|
|
77
|
-
|
|
78
|
-
const response = await apiClient.answerQuestion(request_id, answer, session.currentSessionId || undefined);
|
|
79
|
-
|
|
80
|
-
if (!response.ok) {
|
|
81
|
-
return { result: { error: response.error || 'Failed to answer question' }, isError: true };
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return {
|
|
85
|
-
result: {
|
|
86
|
-
success: true,
|
|
87
|
-
message: 'Question answered successfully',
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Requests handlers registry
|
|
94
|
-
*/
|
|
95
|
-
export const requestHandlers: HandlerRegistry = {
|
|
96
|
-
get_pending_requests: getPendingRequests,
|
|
97
|
-
acknowledge_request: acknowledgeRequest,
|
|
98
|
-
answer_question: answerQuestion,
|
|
99
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Requests Handlers
|
|
3
|
+
*
|
|
4
|
+
* Handles user request handling:
|
|
5
|
+
* - get_pending_requests
|
|
6
|
+
* - acknowledge_request
|
|
7
|
+
* - answer_question
|
|
8
|
+
*
|
|
9
|
+
* MIGRATED: Uses Vibescope API client instead of direct Supabase
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { Handler, HandlerRegistry } from './types.js';
|
|
13
|
+
import { parseArgs, uuidValidator } from '../validators.js';
|
|
14
|
+
import { getApiClient } from '../api-client.js';
|
|
15
|
+
|
|
16
|
+
// Argument schemas for type-safe parsing
|
|
17
|
+
const getPendingRequestsSchema = {
|
|
18
|
+
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
19
|
+
limit: { type: 'number' as const, default: 50 },
|
|
20
|
+
offset: { type: 'number' as const, default: 0 },
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const acknowledgeRequestSchema = {
|
|
24
|
+
request_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const answerQuestionSchema = {
|
|
28
|
+
request_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
29
|
+
answer: { type: 'string' as const, required: true as const },
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const getPendingRequests: Handler = async (args, ctx) => {
|
|
33
|
+
const { project_id, limit, offset } = parseArgs(args, getPendingRequestsSchema);
|
|
34
|
+
|
|
35
|
+
const { session } = ctx;
|
|
36
|
+
const apiClient = getApiClient();
|
|
37
|
+
|
|
38
|
+
const response = await apiClient.getPendingRequests(project_id, session.currentSessionId || undefined, Math.min(limit ?? 50, 50), offset);
|
|
39
|
+
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
return { result: { error: response.error || 'Failed to get pending requests' }, isError: true };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
result: {
|
|
46
|
+
requests: response.data?.requests || [],
|
|
47
|
+
total_count: response.data?.total_count || 0,
|
|
48
|
+
has_more: response.data?.has_more || false,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const acknowledgeRequest: Handler = async (args, ctx) => {
|
|
54
|
+
const { request_id } = parseArgs(args, acknowledgeRequestSchema);
|
|
55
|
+
|
|
56
|
+
const { session } = ctx;
|
|
57
|
+
const apiClient = getApiClient();
|
|
58
|
+
|
|
59
|
+
const response = await apiClient.acknowledgeRequest(request_id, session.currentSessionId || undefined);
|
|
60
|
+
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
return { result: { error: response.error || 'Failed to acknowledge request' }, isError: true };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
result: {
|
|
67
|
+
success: true,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const answerQuestion: Handler = async (args, ctx) => {
|
|
73
|
+
const { request_id, answer } = parseArgs(args, answerQuestionSchema);
|
|
74
|
+
|
|
75
|
+
const { session } = ctx;
|
|
76
|
+
const apiClient = getApiClient();
|
|
77
|
+
|
|
78
|
+
const response = await apiClient.answerQuestion(request_id, answer, session.currentSessionId || undefined);
|
|
79
|
+
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
return { result: { error: response.error || 'Failed to answer question' }, isError: true };
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
result: {
|
|
86
|
+
success: true,
|
|
87
|
+
message: 'Question answered successfully',
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Requests handlers registry
|
|
94
|
+
*/
|
|
95
|
+
export const requestHandlers: HandlerRegistry = {
|
|
96
|
+
get_pending_requests: getPendingRequests,
|
|
97
|
+
acknowledge_request: acknowledgeRequest,
|
|
98
|
+
answer_question: answerQuestion,
|
|
99
|
+
};
|