@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
package/src/api-client/types.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Types for Vibescope API Client
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export interface RetryConfig {
|
|
6
|
-
maxRetries?: number;
|
|
7
|
-
baseDelayMs?: number;
|
|
8
|
-
maxDelayMs?: number;
|
|
9
|
-
retryStatusCodes?: number[];
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface ApiClientConfig {
|
|
13
|
-
apiKey: string;
|
|
14
|
-
baseUrl?: string;
|
|
15
|
-
retry?: RetryConfig;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface ApiResponse<T> {
|
|
19
|
-
ok: boolean;
|
|
20
|
-
status: number;
|
|
21
|
-
data?: T;
|
|
22
|
-
error?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Request function type that domain modules depend on
|
|
26
|
-
export type RequestFn = <T>(method: string, path: string, body?: unknown) => Promise<ApiResponse<T>>;
|
|
27
|
-
|
|
28
|
-
// Proxy function type for generic operations
|
|
29
|
-
export type ProxyFn = <T>(operation: string, args: Record<string, unknown>, sessionContext?: {
|
|
30
|
-
session_id?: string;
|
|
31
|
-
project_id?: string;
|
|
32
|
-
}) => Promise<ApiResponse<T>>;
|
|
1
|
+
/**
|
|
2
|
+
* Shared Types for Vibescope API Client
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export interface RetryConfig {
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
baseDelayMs?: number;
|
|
8
|
+
maxDelayMs?: number;
|
|
9
|
+
retryStatusCodes?: number[];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ApiClientConfig {
|
|
13
|
+
apiKey: string;
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
retry?: RetryConfig;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface ApiResponse<T> {
|
|
19
|
+
ok: boolean;
|
|
20
|
+
status: number;
|
|
21
|
+
data?: T;
|
|
22
|
+
error?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Request function type that domain modules depend on
|
|
26
|
+
export type RequestFn = <T>(method: string, path: string, body?: unknown) => Promise<ApiResponse<T>>;
|
|
27
|
+
|
|
28
|
+
// Proxy function type for generic operations
|
|
29
|
+
export type ProxyFn = <T>(operation: string, args: Record<string, unknown>, sessionContext?: {
|
|
30
|
+
session_id?: string;
|
|
31
|
+
project_id?: string;
|
|
32
|
+
}) => Promise<ApiResponse<T>>;
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation API Methods
|
|
3
|
-
*
|
|
4
|
-
* Handles task validation workflow for code review and approval.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { ApiResponse, ProxyFn } from './types.js';
|
|
8
|
-
|
|
9
|
-
export interface TaskAwaitingValidation {
|
|
10
|
-
id: string;
|
|
11
|
-
title: string;
|
|
12
|
-
completed_at?: string;
|
|
13
|
-
completed_by_session_id?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ValidationMethods {
|
|
17
|
-
getTasksAwaitingValidation(projectId: string): Promise<ApiResponse<{
|
|
18
|
-
tasks: TaskAwaitingValidation[];
|
|
19
|
-
}>>;
|
|
20
|
-
|
|
21
|
-
claimValidation(taskId: string, sessionId?: string): Promise<ApiResponse<{
|
|
22
|
-
success: boolean;
|
|
23
|
-
task_id: string;
|
|
24
|
-
}>>;
|
|
25
|
-
|
|
26
|
-
validateTask(taskId: string, params: {
|
|
27
|
-
approved: boolean;
|
|
28
|
-
validation_notes?: string;
|
|
29
|
-
skip_pr_check?: boolean;
|
|
30
|
-
pr_checks_passing?: boolean;
|
|
31
|
-
create_fix_task?: boolean;
|
|
32
|
-
}, sessionId?: string): Promise<ApiResponse<{
|
|
33
|
-
success: boolean;
|
|
34
|
-
approved: boolean;
|
|
35
|
-
task_id: string;
|
|
36
|
-
message?: string;
|
|
37
|
-
workflow?: string;
|
|
38
|
-
}>>;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function createValidationMethods(proxy: ProxyFn): ValidationMethods {
|
|
42
|
-
return {
|
|
43
|
-
async getTasksAwaitingValidation(projectId) {
|
|
44
|
-
return proxy('get_tasks_awaiting_validation', { project_id: projectId });
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
async claimValidation(taskId, sessionId) {
|
|
48
|
-
return proxy('claim_validation', { task_id: taskId }, sessionId ? {
|
|
49
|
-
session_id: sessionId
|
|
50
|
-
} : undefined);
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
async validateTask(taskId, params, sessionId) {
|
|
54
|
-
return proxy('validate_task', {
|
|
55
|
-
task_id: taskId,
|
|
56
|
-
...params
|
|
57
|
-
}, sessionId ? { session_id: sessionId } : undefined);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Validation API Methods
|
|
3
|
+
*
|
|
4
|
+
* Handles task validation workflow for code review and approval.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { ApiResponse, ProxyFn } from './types.js';
|
|
8
|
+
|
|
9
|
+
export interface TaskAwaitingValidation {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
completed_at?: string;
|
|
13
|
+
completed_by_session_id?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ValidationMethods {
|
|
17
|
+
getTasksAwaitingValidation(projectId: string): Promise<ApiResponse<{
|
|
18
|
+
tasks: TaskAwaitingValidation[];
|
|
19
|
+
}>>;
|
|
20
|
+
|
|
21
|
+
claimValidation(taskId: string, sessionId?: string): Promise<ApiResponse<{
|
|
22
|
+
success: boolean;
|
|
23
|
+
task_id: string;
|
|
24
|
+
}>>;
|
|
25
|
+
|
|
26
|
+
validateTask(taskId: string, params: {
|
|
27
|
+
approved: boolean;
|
|
28
|
+
validation_notes?: string;
|
|
29
|
+
skip_pr_check?: boolean;
|
|
30
|
+
pr_checks_passing?: boolean;
|
|
31
|
+
create_fix_task?: boolean;
|
|
32
|
+
}, sessionId?: string): Promise<ApiResponse<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
approved: boolean;
|
|
35
|
+
task_id: string;
|
|
36
|
+
message?: string;
|
|
37
|
+
workflow?: string;
|
|
38
|
+
}>>;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function createValidationMethods(proxy: ProxyFn): ValidationMethods {
|
|
42
|
+
return {
|
|
43
|
+
async getTasksAwaitingValidation(projectId) {
|
|
44
|
+
return proxy('get_tasks_awaiting_validation', { project_id: projectId });
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
async claimValidation(taskId, sessionId) {
|
|
48
|
+
return proxy('claim_validation', { task_id: taskId }, sessionId ? {
|
|
49
|
+
session_id: sessionId
|
|
50
|
+
} : undefined);
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
async validateTask(taskId, params, sessionId) {
|
|
54
|
+
return proxy('validate_task', {
|
|
55
|
+
task_id: taskId,
|
|
56
|
+
...params
|
|
57
|
+
}, sessionId ? { session_id: sessionId } : undefined);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worktrees API Methods
|
|
3
|
-
*
|
|
4
|
-
* Methods for git worktree management:
|
|
5
|
-
* - getStaleWorktrees: List stale worktrees for cleanup
|
|
6
|
-
* - clearWorktreePath: Clear worktree path from a task
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type { ApiResponse, RequestFn } from './types.js';
|
|
10
|
-
|
|
11
|
-
export interface WorktreesMethods {
|
|
12
|
-
getStaleWorktrees(projectId: string, params?: {
|
|
13
|
-
hostname?: string;
|
|
14
|
-
limit?: number;
|
|
15
|
-
offset?: number;
|
|
16
|
-
}): Promise<ApiResponse<{
|
|
17
|
-
stale_worktrees: Array<{
|
|
18
|
-
task_id: string;
|
|
19
|
-
task_title: string;
|
|
20
|
-
worktree_path: string;
|
|
21
|
-
worktree_hostname?: string | null;
|
|
22
|
-
last_heartbeat?: string;
|
|
23
|
-
session_status?: string;
|
|
24
|
-
}>;
|
|
25
|
-
total_count: number;
|
|
26
|
-
has_more: boolean;
|
|
27
|
-
cleanup_instructions: string;
|
|
28
|
-
}>>;
|
|
29
|
-
|
|
30
|
-
clearWorktreePath(taskId: string): Promise<ApiResponse<{
|
|
31
|
-
success: boolean;
|
|
32
|
-
task_id: string;
|
|
33
|
-
message: string;
|
|
34
|
-
}>>;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function createWorktreesMethods(request: RequestFn): WorktreesMethods {
|
|
38
|
-
return {
|
|
39
|
-
async getStaleWorktrees(projectId, params) {
|
|
40
|
-
const queryParams = new URLSearchParams();
|
|
41
|
-
if (params?.hostname) queryParams.set('hostname', params.hostname);
|
|
42
|
-
if (params?.limit) queryParams.set('limit', params.limit.toString());
|
|
43
|
-
if (params?.offset) queryParams.set('offset', params.offset.toString());
|
|
44
|
-
const query = queryParams.toString();
|
|
45
|
-
const url = `/api/mcp/projects/${projectId}/worktrees/stale${query ? `?${query}` : ''}`;
|
|
46
|
-
return request('GET', url);
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
async clearWorktreePath(taskId) {
|
|
50
|
-
return request('POST', `/api/mcp/tasks/${taskId}/clear-worktree`);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Worktrees API Methods
|
|
3
|
+
*
|
|
4
|
+
* Methods for git worktree management:
|
|
5
|
+
* - getStaleWorktrees: List stale worktrees for cleanup
|
|
6
|
+
* - clearWorktreePath: Clear worktree path from a task
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { ApiResponse, RequestFn } from './types.js';
|
|
10
|
+
|
|
11
|
+
export interface WorktreesMethods {
|
|
12
|
+
getStaleWorktrees(projectId: string, params?: {
|
|
13
|
+
hostname?: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
offset?: number;
|
|
16
|
+
}): Promise<ApiResponse<{
|
|
17
|
+
stale_worktrees: Array<{
|
|
18
|
+
task_id: string;
|
|
19
|
+
task_title: string;
|
|
20
|
+
worktree_path: string;
|
|
21
|
+
worktree_hostname?: string | null;
|
|
22
|
+
last_heartbeat?: string;
|
|
23
|
+
session_status?: string;
|
|
24
|
+
}>;
|
|
25
|
+
total_count: number;
|
|
26
|
+
has_more: boolean;
|
|
27
|
+
cleanup_instructions: string;
|
|
28
|
+
}>>;
|
|
29
|
+
|
|
30
|
+
clearWorktreePath(taskId: string): Promise<ApiResponse<{
|
|
31
|
+
success: boolean;
|
|
32
|
+
task_id: string;
|
|
33
|
+
message: string;
|
|
34
|
+
}>>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function createWorktreesMethods(request: RequestFn): WorktreesMethods {
|
|
38
|
+
return {
|
|
39
|
+
async getStaleWorktrees(projectId, params) {
|
|
40
|
+
const queryParams = new URLSearchParams();
|
|
41
|
+
if (params?.hostname) queryParams.set('hostname', params.hostname);
|
|
42
|
+
if (params?.limit) queryParams.set('limit', params.limit.toString());
|
|
43
|
+
if (params?.offset) queryParams.set('offset', params.offset.toString());
|
|
44
|
+
const query = queryParams.toString();
|
|
45
|
+
const url = `/api/mcp/projects/${projectId}/worktrees/stale${query ? `?${query}` : ''}`;
|
|
46
|
+
return request('GET', url);
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
async clearWorktreePath(taskId) {
|
|
50
|
+
return request('POST', `/api/mcp/tasks/${taskId}/clear-worktree`);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|