@vibescope/mcp-server 0.4.4 → 0.4.6
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/bodies-of-work.d.ts +125 -0
- package/dist/api-client/bodies-of-work.js +78 -0
- package/dist/api-client/chat.d.ts +26 -0
- package/dist/api-client/chat.js +20 -0
- package/dist/api-client/connectors.d.ts +104 -0
- package/dist/api-client/connectors.js +46 -0
- package/dist/api-client/deployment.d.ts +190 -0
- package/dist/api-client/deployment.js +113 -0
- package/dist/api-client/file-checkouts.d.ts +71 -0
- package/dist/api-client/file-checkouts.js +43 -0
- package/dist/api-client/git-issues.d.ts +55 -0
- package/dist/api-client/git-issues.js +34 -0
- package/dist/api-client/index.d.ts +619 -1
- package/dist/api-client/index.js +148 -0
- package/dist/api-client/organizations.d.ts +101 -0
- package/dist/api-client/organizations.js +86 -0
- package/dist/api-client/progress.d.ts +61 -0
- package/dist/api-client/progress.js +34 -0
- package/dist/api-client/project.d.ts +1 -0
- package/dist/api-client/requests.d.ts +28 -0
- package/dist/api-client/requests.js +28 -0
- package/dist/api-client/sprints.d.ts +153 -0
- package/dist/api-client/sprints.js +82 -0
- package/dist/api-client/subtasks.d.ts +37 -0
- package/dist/api-client/subtasks.js +23 -0
- package/dist/api-client.d.ts +23 -0
- package/dist/api-client.js +15 -0
- package/dist/cli-init.js +21 -21
- package/dist/cli.js +26 -26
- package/dist/handlers/blockers.js +4 -0
- package/dist/handlers/chat.d.ts +23 -0
- package/dist/handlers/chat.js +84 -0
- package/dist/handlers/deployment.d.ts +3 -0
- package/dist/handlers/deployment.js +23 -0
- package/dist/handlers/discovery.js +13 -0
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.js +3 -0
- package/dist/handlers/project.js +4 -2
- package/dist/handlers/session.js +7 -0
- package/dist/handlers/tasks.js +7 -0
- package/dist/handlers/tool-docs.js +1204 -1131
- package/dist/index.js +73 -73
- 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/deployment.js +13 -0
- 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/docs/TOOLS.md +2663 -2545
- 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 -0
- package/src/api-client/chat.ts +50 -0
- package/src/api-client/connectors.ts +152 -0
- package/src/api-client/cost.ts +185 -185
- package/src/api-client/decisions.ts +87 -87
- package/src/api-client/deployment.ts +313 -0
- package/src/api-client/discovery.ts +81 -81
- package/src/api-client/fallback.ts +52 -52
- package/src/api-client/file-checkouts.ts +115 -0
- package/src/api-client/findings.ts +100 -100
- package/src/api-client/git-issues.ts +88 -0
- package/src/api-client/ideas.ts +112 -112
- package/src/api-client/index.ts +592 -426
- package/src/api-client/milestones.ts +83 -83
- package/src/api-client/organizations.ts +185 -0
- package/src/api-client/progress.ts +94 -0
- package/src/api-client/project.ts +180 -179
- package/src/api-client/requests.ts +54 -0
- package/src/api-client/session.ts +220 -220
- package/src/api-client/sprints.ts +227 -0
- package/src/api-client/subtasks.ts +57 -0
- 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 -850
- package/src/api-client.ts +2707 -2672
- package/src/cli-init.ts +557 -557
- package/src/cli.test.ts +284 -284
- package/src/cli.ts +204 -204
- package/src/handlers/__test-setup__.ts +240 -236
- package/src/handlers/__test-utils__.ts +89 -89
- package/src/handlers/blockers.test.ts +468 -468
- package/src/handlers/blockers.ts +172 -163
- 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 -0
- package/src/handlers/chat.ts +101 -0
- 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 -541
- package/src/handlers/discovery.test.ts +206 -206
- package/src/handlers/discovery.ts +427 -414
- 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 -90
- 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 -1093
- 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 -1121
- 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 -1491
- 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 +807 -807
- package/src/setup.test.ts +233 -233
- package/src/setup.ts +404 -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 -442
- 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 +109 -109
- package/tsconfig.json +16 -16
- package/vitest.config.ts +14 -14
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Issues Handlers
|
|
3
|
-
*
|
|
4
|
-
* Handles git issue management:
|
|
5
|
-
* - add_git_issue: Record a git-related issue (conflicts, push failures, etc.)
|
|
6
|
-
* - resolve_git_issue: Mark a git issue as resolved
|
|
7
|
-
* - get_git_issues: List git issues for a project
|
|
8
|
-
* - delete_git_issue: Remove a git issue
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { Handler, HandlerRegistry } from './types.js';
|
|
12
|
-
import { parseArgs, uuidValidator, createEnumValidator } from '../validators.js';
|
|
13
|
-
import { getApiClient } from '../api-client.js';
|
|
14
|
-
|
|
15
|
-
const VALID_GIT_ISSUE_TYPES = [
|
|
16
|
-
'merge_conflict',
|
|
17
|
-
'push_failed',
|
|
18
|
-
'rebase_needed',
|
|
19
|
-
'branch_diverged',
|
|
20
|
-
'pr_not_mergeable',
|
|
21
|
-
] as const;
|
|
22
|
-
|
|
23
|
-
const VALID_GIT_ISSUE_STATUSES = ['open', 'resolved'] as const;
|
|
24
|
-
|
|
25
|
-
type GitIssueType = (typeof VALID_GIT_ISSUE_TYPES)[number];
|
|
26
|
-
type GitIssueStatus = (typeof VALID_GIT_ISSUE_STATUSES)[number];
|
|
27
|
-
|
|
28
|
-
// Argument schemas for type-safe parsing
|
|
29
|
-
const addGitIssueSchema = {
|
|
30
|
-
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
31
|
-
issue_type: { type: 'string' as const, required: true as const, validate: createEnumValidator(VALID_GIT_ISSUE_TYPES) },
|
|
32
|
-
branch: { type: 'string' as const, required: true as const },
|
|
33
|
-
target_branch: { type: 'string' as const },
|
|
34
|
-
pr_url: { type: 'string' as const },
|
|
35
|
-
conflicting_files: { type: 'array' as const },
|
|
36
|
-
error_message: { type: 'string' as const },
|
|
37
|
-
task_id: { type: 'string' as const, validate: uuidValidator },
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const resolveGitIssueSchema = {
|
|
41
|
-
git_issue_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
42
|
-
resolution_note: { type: 'string' as const },
|
|
43
|
-
auto_resolved: { type: 'boolean' as const },
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const getGitIssuesSchema = {
|
|
47
|
-
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
48
|
-
status: { type: 'string' as const, default: 'open', validate: createEnumValidator(VALID_GIT_ISSUE_STATUSES) },
|
|
49
|
-
issue_type: { type: 'string' as const, validate: createEnumValidator(VALID_GIT_ISSUE_TYPES) },
|
|
50
|
-
branch: { type: 'string' as const },
|
|
51
|
-
limit: { type: 'number' as const, default: 50 },
|
|
52
|
-
offset: { type: 'number' as const, default: 0 },
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const deleteGitIssueSchema = {
|
|
56
|
-
git_issue_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export const addGitIssue: Handler = async (args, ctx) => {
|
|
60
|
-
const { project_id, issue_type, branch, target_branch, pr_url, conflicting_files, error_message, task_id } = parseArgs(args, addGitIssueSchema);
|
|
61
|
-
|
|
62
|
-
const apiClient = getApiClient();
|
|
63
|
-
const response = await apiClient.addGitIssue(project_id, {
|
|
64
|
-
issue_type: issue_type as GitIssueType,
|
|
65
|
-
branch,
|
|
66
|
-
target_branch,
|
|
67
|
-
pr_url,
|
|
68
|
-
conflicting_files: conflicting_files as string[] | undefined,
|
|
69
|
-
error_message,
|
|
70
|
-
task_id
|
|
71
|
-
}, ctx.session.currentSessionId || undefined);
|
|
72
|
-
|
|
73
|
-
if (!response.ok) {
|
|
74
|
-
return { result: { error: response.error || 'Failed to add git issue' }, isError: true };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return { result: response.data };
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const resolveGitIssue: Handler = async (args, ctx) => {
|
|
81
|
-
const { git_issue_id, resolution_note, auto_resolved } = parseArgs(args, resolveGitIssueSchema);
|
|
82
|
-
|
|
83
|
-
const apiClient = getApiClient();
|
|
84
|
-
const response = await apiClient.resolveGitIssue(git_issue_id, {
|
|
85
|
-
resolution_note,
|
|
86
|
-
auto_resolved
|
|
87
|
-
}, ctx.session.currentSessionId || undefined);
|
|
88
|
-
|
|
89
|
-
if (!response.ok) {
|
|
90
|
-
return { result: { error: response.error || 'Failed to resolve git issue' }, isError: true };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return { result: response.data };
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
export const getGitIssues: Handler = async (args, _ctx) => {
|
|
97
|
-
const { project_id, status, issue_type, branch, limit, offset } = parseArgs(args, getGitIssuesSchema);
|
|
98
|
-
|
|
99
|
-
const apiClient = getApiClient();
|
|
100
|
-
const response = await apiClient.getGitIssues(project_id, {
|
|
101
|
-
status: status as GitIssueStatus | undefined,
|
|
102
|
-
issue_type: issue_type as GitIssueType | undefined,
|
|
103
|
-
branch,
|
|
104
|
-
limit: Math.min(limit ?? 50, 50),
|
|
105
|
-
offset
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
if (!response.ok) {
|
|
109
|
-
return { result: { error: response.error || 'Failed to fetch git issues' }, isError: true };
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return { result: response.data };
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
export const deleteGitIssue: Handler = async (args, _ctx) => {
|
|
116
|
-
const { git_issue_id } = parseArgs(args, deleteGitIssueSchema);
|
|
117
|
-
|
|
118
|
-
const apiClient = getApiClient();
|
|
119
|
-
const response = await apiClient.deleteGitIssue(git_issue_id);
|
|
120
|
-
|
|
121
|
-
if (!response.ok) {
|
|
122
|
-
return { result: { error: response.error || 'Failed to delete git issue' }, isError: true };
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return { result: response.data };
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Git Issues handlers registry
|
|
130
|
-
*/
|
|
131
|
-
export const gitIssueHandlers: HandlerRegistry = {
|
|
132
|
-
add_git_issue: addGitIssue,
|
|
133
|
-
resolve_git_issue: resolveGitIssue,
|
|
134
|
-
get_git_issues: getGitIssues,
|
|
135
|
-
delete_git_issue: deleteGitIssue,
|
|
136
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Git Issues Handlers
|
|
3
|
+
*
|
|
4
|
+
* Handles git issue management:
|
|
5
|
+
* - add_git_issue: Record a git-related issue (conflicts, push failures, etc.)
|
|
6
|
+
* - resolve_git_issue: Mark a git issue as resolved
|
|
7
|
+
* - get_git_issues: List git issues for a project
|
|
8
|
+
* - delete_git_issue: Remove a git issue
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type { Handler, HandlerRegistry } from './types.js';
|
|
12
|
+
import { parseArgs, uuidValidator, createEnumValidator } from '../validators.js';
|
|
13
|
+
import { getApiClient } from '../api-client.js';
|
|
14
|
+
|
|
15
|
+
const VALID_GIT_ISSUE_TYPES = [
|
|
16
|
+
'merge_conflict',
|
|
17
|
+
'push_failed',
|
|
18
|
+
'rebase_needed',
|
|
19
|
+
'branch_diverged',
|
|
20
|
+
'pr_not_mergeable',
|
|
21
|
+
] as const;
|
|
22
|
+
|
|
23
|
+
const VALID_GIT_ISSUE_STATUSES = ['open', 'resolved'] as const;
|
|
24
|
+
|
|
25
|
+
type GitIssueType = (typeof VALID_GIT_ISSUE_TYPES)[number];
|
|
26
|
+
type GitIssueStatus = (typeof VALID_GIT_ISSUE_STATUSES)[number];
|
|
27
|
+
|
|
28
|
+
// Argument schemas for type-safe parsing
|
|
29
|
+
const addGitIssueSchema = {
|
|
30
|
+
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
31
|
+
issue_type: { type: 'string' as const, required: true as const, validate: createEnumValidator(VALID_GIT_ISSUE_TYPES) },
|
|
32
|
+
branch: { type: 'string' as const, required: true as const },
|
|
33
|
+
target_branch: { type: 'string' as const },
|
|
34
|
+
pr_url: { type: 'string' as const },
|
|
35
|
+
conflicting_files: { type: 'array' as const },
|
|
36
|
+
error_message: { type: 'string' as const },
|
|
37
|
+
task_id: { type: 'string' as const, validate: uuidValidator },
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const resolveGitIssueSchema = {
|
|
41
|
+
git_issue_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
42
|
+
resolution_note: { type: 'string' as const },
|
|
43
|
+
auto_resolved: { type: 'boolean' as const },
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const getGitIssuesSchema = {
|
|
47
|
+
project_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
48
|
+
status: { type: 'string' as const, default: 'open', validate: createEnumValidator(VALID_GIT_ISSUE_STATUSES) },
|
|
49
|
+
issue_type: { type: 'string' as const, validate: createEnumValidator(VALID_GIT_ISSUE_TYPES) },
|
|
50
|
+
branch: { type: 'string' as const },
|
|
51
|
+
limit: { type: 'number' as const, default: 50 },
|
|
52
|
+
offset: { type: 'number' as const, default: 0 },
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const deleteGitIssueSchema = {
|
|
56
|
+
git_issue_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const addGitIssue: Handler = async (args, ctx) => {
|
|
60
|
+
const { project_id, issue_type, branch, target_branch, pr_url, conflicting_files, error_message, task_id } = parseArgs(args, addGitIssueSchema);
|
|
61
|
+
|
|
62
|
+
const apiClient = getApiClient();
|
|
63
|
+
const response = await apiClient.addGitIssue(project_id, {
|
|
64
|
+
issue_type: issue_type as GitIssueType,
|
|
65
|
+
branch,
|
|
66
|
+
target_branch,
|
|
67
|
+
pr_url,
|
|
68
|
+
conflicting_files: conflicting_files as string[] | undefined,
|
|
69
|
+
error_message,
|
|
70
|
+
task_id
|
|
71
|
+
}, ctx.session.currentSessionId || undefined);
|
|
72
|
+
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
return { result: { error: response.error || 'Failed to add git issue' }, isError: true };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return { result: response.data };
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export const resolveGitIssue: Handler = async (args, ctx) => {
|
|
81
|
+
const { git_issue_id, resolution_note, auto_resolved } = parseArgs(args, resolveGitIssueSchema);
|
|
82
|
+
|
|
83
|
+
const apiClient = getApiClient();
|
|
84
|
+
const response = await apiClient.resolveGitIssue(git_issue_id, {
|
|
85
|
+
resolution_note,
|
|
86
|
+
auto_resolved
|
|
87
|
+
}, ctx.session.currentSessionId || undefined);
|
|
88
|
+
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
return { result: { error: response.error || 'Failed to resolve git issue' }, isError: true };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return { result: response.data };
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export const getGitIssues: Handler = async (args, _ctx) => {
|
|
97
|
+
const { project_id, status, issue_type, branch, limit, offset } = parseArgs(args, getGitIssuesSchema);
|
|
98
|
+
|
|
99
|
+
const apiClient = getApiClient();
|
|
100
|
+
const response = await apiClient.getGitIssues(project_id, {
|
|
101
|
+
status: status as GitIssueStatus | undefined,
|
|
102
|
+
issue_type: issue_type as GitIssueType | undefined,
|
|
103
|
+
branch,
|
|
104
|
+
limit: Math.min(limit ?? 50, 50),
|
|
105
|
+
offset
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
if (!response.ok) {
|
|
109
|
+
return { result: { error: response.error || 'Failed to fetch git issues' }, isError: true };
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return { result: response.data };
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export const deleteGitIssue: Handler = async (args, _ctx) => {
|
|
116
|
+
const { git_issue_id } = parseArgs(args, deleteGitIssueSchema);
|
|
117
|
+
|
|
118
|
+
const apiClient = getApiClient();
|
|
119
|
+
const response = await apiClient.deleteGitIssue(git_issue_id);
|
|
120
|
+
|
|
121
|
+
if (!response.ok) {
|
|
122
|
+
return { result: { error: response.error || 'Failed to delete git issue' }, isError: true };
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return { result: response.data };
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Git Issues handlers registry
|
|
130
|
+
*/
|
|
131
|
+
export const gitIssueHandlers: HandlerRegistry = {
|
|
132
|
+
add_git_issue: addGitIssue,
|
|
133
|
+
resolve_git_issue: resolveGitIssue,
|
|
134
|
+
get_git_issues: getGitIssues,
|
|
135
|
+
delete_git_issue: deleteGitIssue,
|
|
136
|
+
};
|