@fractary/core-mcp 0.1.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/LICENSE +21 -0
- package/README.md +272 -0
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +112 -0
- package/dist/config.js.map +1 -0
- package/dist/handlers/docs.d.ts +58 -0
- package/dist/handlers/docs.d.ts.map +1 -0
- package/dist/handlers/docs.js +144 -0
- package/dist/handlers/docs.js.map +1 -0
- package/dist/handlers/file.d.ts +55 -0
- package/dist/handlers/file.d.ts.map +1 -0
- package/dist/handlers/file.js +153 -0
- package/dist/handlers/file.js.map +1 -0
- package/dist/handlers/helpers.d.ts +62 -0
- package/dist/handlers/helpers.d.ts.map +1 -0
- package/dist/handlers/helpers.js +100 -0
- package/dist/handlers/helpers.js.map +1 -0
- package/dist/handlers/index.d.ts +10 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +184 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/logs.d.ts +48 -0
- package/dist/handlers/logs.d.ts.map +1 -0
- package/dist/handlers/logs.js +99 -0
- package/dist/handlers/logs.js.map +1 -0
- package/dist/handlers/repo.d.ts +158 -0
- package/dist/handlers/repo.d.ts.map +1 -0
- package/dist/handlers/repo.js +651 -0
- package/dist/handlers/repo.js.map +1 -0
- package/dist/handlers/security.d.ts +38 -0
- package/dist/handlers/security.d.ts.map +1 -0
- package/dist/handlers/security.js +79 -0
- package/dist/handlers/security.js.map +1 -0
- package/dist/handlers/spec.d.ts +39 -0
- package/dist/handlers/spec.d.ts.map +1 -0
- package/dist/handlers/spec.js +99 -0
- package/dist/handlers/spec.js.map +1 -0
- package/dist/handlers/work.d.ts +147 -0
- package/dist/handlers/work.d.ts.map +1 -0
- package/dist/handlers/work.js +373 -0
- package/dist/handlers/work.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +42 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/docs.d.ts +7 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +160 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/file.d.ts +7 -0
- package/dist/tools/file.d.ts.map +1 -0
- package/dist/tools/file.js +144 -0
- package/dist/tools/file.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +18 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/logs.d.ts +7 -0
- package/dist/tools/logs.d.ts.map +1 -0
- package/dist/tools/logs.js +139 -0
- package/dist/tools/logs.js.map +1 -0
- package/dist/tools/repo.d.ts +7 -0
- package/dist/tools/repo.d.ts.map +1 -0
- package/dist/tools/repo.js +694 -0
- package/dist/tools/repo.js.map +1 -0
- package/dist/tools/spec.d.ts +7 -0
- package/dist/tools/spec.d.ts.map +1 -0
- package/dist/tools/spec.js +102 -0
- package/dist/tools/spec.js.map +1 -0
- package/dist/tools/work.d.ts +7 -0
- package/dist/tools/work.d.ts.map +1 -0
- package/dist/tools/work.js +384 -0
- package/dist/tools/work.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import { WorkManager } from '@fractary/core/work';
|
|
2
|
+
import { successResult, errorResult, isValidIssueState, isValidPrState, isValidFaberContext, validateWorkConfig } from './helpers.js';
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: All handlers in this file validate config.work before use
|
|
5
|
+
* Pattern: if (!validateWorkConfig(config)) { return errorResult(...) }
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Handler for fractary_work_issue_fetch
|
|
9
|
+
*/
|
|
10
|
+
export async function handleWorkIssueFetch(params, config) {
|
|
11
|
+
try {
|
|
12
|
+
if (!validateWorkConfig(config)) {
|
|
13
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
14
|
+
}
|
|
15
|
+
const manager = new WorkManager(config.work);
|
|
16
|
+
const issue = await manager.fetchIssue(params.issue_number);
|
|
17
|
+
return successResult(issue);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
21
|
+
return errorResult(`Error fetching issue: ${message}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Handler for fractary_work_issue_create
|
|
26
|
+
*/
|
|
27
|
+
export async function handleWorkIssueCreate(params, config) {
|
|
28
|
+
try {
|
|
29
|
+
if (!validateWorkConfig(config)) {
|
|
30
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
31
|
+
}
|
|
32
|
+
const manager = new WorkManager(config.work);
|
|
33
|
+
const issue = await manager.createIssue({
|
|
34
|
+
title: params.title,
|
|
35
|
+
body: params.body,
|
|
36
|
+
labels: params.labels,
|
|
37
|
+
assignees: params.assignee ? [params.assignee] : undefined,
|
|
38
|
+
});
|
|
39
|
+
return successResult(issue);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
43
|
+
return errorResult(`Error creating issue: ${message}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Handler for fractary_work_issue_update
|
|
48
|
+
*/
|
|
49
|
+
export async function handleWorkIssueUpdate(params, config) {
|
|
50
|
+
try {
|
|
51
|
+
if (!validateWorkConfig(config)) {
|
|
52
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
53
|
+
}
|
|
54
|
+
if (params.state && !isValidPrState(params.state)) {
|
|
55
|
+
return errorResult(`Invalid state: ${params.state}. Must be 'open' or 'closed'`);
|
|
56
|
+
}
|
|
57
|
+
const manager = new WorkManager(config.work);
|
|
58
|
+
const issue = await manager.updateIssue(params.issue_number, {
|
|
59
|
+
title: params.title,
|
|
60
|
+
body: params.body,
|
|
61
|
+
state: isValidPrState(params.state) ? params.state : undefined,
|
|
62
|
+
});
|
|
63
|
+
return successResult(issue);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
67
|
+
return errorResult(`Error updating issue: ${message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Handler for fractary_work_issue_assign
|
|
72
|
+
*/
|
|
73
|
+
export async function handleWorkIssueAssign(params, config) {
|
|
74
|
+
try {
|
|
75
|
+
if (!validateWorkConfig(config)) {
|
|
76
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
77
|
+
}
|
|
78
|
+
const manager = new WorkManager(config.work);
|
|
79
|
+
const issue = await manager.assignIssue(params.issue_number, params.assignee);
|
|
80
|
+
return successResult(issue);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
84
|
+
return errorResult(`Error assigning issue: ${message}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Handler for fractary_work_issue_unassign
|
|
89
|
+
*/
|
|
90
|
+
export async function handleWorkIssueUnassign(params, config) {
|
|
91
|
+
try {
|
|
92
|
+
if (!validateWorkConfig(config)) {
|
|
93
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
94
|
+
}
|
|
95
|
+
const manager = new WorkManager(config.work);
|
|
96
|
+
const issue = await manager.unassignIssue(params.issue_number);
|
|
97
|
+
return successResult(issue);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
101
|
+
return errorResult(`Error unassigning issue: ${message}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Handler for fractary_work_issue_close
|
|
106
|
+
*/
|
|
107
|
+
export async function handleWorkIssueClose(params, config) {
|
|
108
|
+
try {
|
|
109
|
+
if (!validateWorkConfig(config)) {
|
|
110
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
111
|
+
}
|
|
112
|
+
const manager = new WorkManager(config.work);
|
|
113
|
+
// Add comment if provided
|
|
114
|
+
if (params.comment) {
|
|
115
|
+
await manager.createComment(params.issue_number, params.comment);
|
|
116
|
+
}
|
|
117
|
+
const issue = await manager.closeIssue(params.issue_number);
|
|
118
|
+
return successResult(issue);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
122
|
+
return errorResult(`Error closing issue: ${message}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Handler for fractary_work_issue_reopen
|
|
127
|
+
*/
|
|
128
|
+
export async function handleWorkIssueReopen(params, config) {
|
|
129
|
+
try {
|
|
130
|
+
if (!validateWorkConfig(config)) {
|
|
131
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
132
|
+
}
|
|
133
|
+
const manager = new WorkManager(config.work);
|
|
134
|
+
// Add comment if provided
|
|
135
|
+
if (params.comment) {
|
|
136
|
+
await manager.createComment(params.issue_number, params.comment);
|
|
137
|
+
}
|
|
138
|
+
const issue = await manager.reopenIssue(params.issue_number);
|
|
139
|
+
return successResult(issue);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
143
|
+
return errorResult(`Error reopening issue: ${message}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Handler for fractary_work_issue_search
|
|
148
|
+
*/
|
|
149
|
+
export async function handleWorkIssueSearch(params, config) {
|
|
150
|
+
try {
|
|
151
|
+
if (!validateWorkConfig(config)) {
|
|
152
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
153
|
+
}
|
|
154
|
+
if (params.state && !isValidIssueState(params.state)) {
|
|
155
|
+
return errorResult(`Invalid state: ${params.state}. Must be 'open', 'closed', or 'all'`);
|
|
156
|
+
}
|
|
157
|
+
const manager = new WorkManager(config.work);
|
|
158
|
+
const issues = await manager.searchIssues(params.query || '', {
|
|
159
|
+
state: isValidIssueState(params.state) ? params.state : undefined,
|
|
160
|
+
labels: params.labels,
|
|
161
|
+
assignee: params.assignee,
|
|
162
|
+
milestone: params.milestone,
|
|
163
|
+
since: params.since,
|
|
164
|
+
});
|
|
165
|
+
return successResult(issues);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
169
|
+
return errorResult(`Error searching issues: ${message}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Handler for fractary_work_issue_classify
|
|
174
|
+
*/
|
|
175
|
+
export async function handleWorkIssueClassify(params, config) {
|
|
176
|
+
try {
|
|
177
|
+
if (!validateWorkConfig(config)) {
|
|
178
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
179
|
+
}
|
|
180
|
+
const manager = new WorkManager(config.work);
|
|
181
|
+
const issue = await manager.fetchIssue(params.issue_number);
|
|
182
|
+
const workType = await manager.classifyWorkType(issue);
|
|
183
|
+
return successResult({ issue_number: params.issue_number, work_type: workType });
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
187
|
+
return errorResult(`Error classifying issue: ${message}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Handler for fractary_work_comment_create
|
|
192
|
+
*/
|
|
193
|
+
export async function handleWorkCommentCreate(params, config) {
|
|
194
|
+
try {
|
|
195
|
+
if (!validateWorkConfig(config)) {
|
|
196
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
197
|
+
}
|
|
198
|
+
if (params.faber_context && !isValidFaberContext(params.faber_context)) {
|
|
199
|
+
return errorResult(`Invalid faber_context: ${params.faber_context}. Must be 'frame', 'architect', 'build', 'evaluate', or 'release'`);
|
|
200
|
+
}
|
|
201
|
+
const manager = new WorkManager(config.work);
|
|
202
|
+
const comment = await manager.createComment(params.issue_number, params.body, isValidFaberContext(params.faber_context) ? params.faber_context : undefined);
|
|
203
|
+
return successResult(comment);
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
207
|
+
return errorResult(`Error creating comment: ${message}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Handler for fractary_work_comment_list
|
|
212
|
+
*/
|
|
213
|
+
export async function handleWorkCommentList(params, config) {
|
|
214
|
+
try {
|
|
215
|
+
if (!validateWorkConfig(config)) {
|
|
216
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
217
|
+
}
|
|
218
|
+
const manager = new WorkManager(config.work);
|
|
219
|
+
const comments = await manager.listComments(params.issue_number, {
|
|
220
|
+
limit: params.limit,
|
|
221
|
+
since: params.since,
|
|
222
|
+
});
|
|
223
|
+
return successResult(comments);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
227
|
+
return errorResult(`Error listing comments: ${message}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Handler for fractary_work_label_add
|
|
232
|
+
*/
|
|
233
|
+
export async function handleWorkLabelAdd(params, config) {
|
|
234
|
+
try {
|
|
235
|
+
if (!validateWorkConfig(config)) {
|
|
236
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
237
|
+
}
|
|
238
|
+
const manager = new WorkManager(config.work);
|
|
239
|
+
const labels = await manager.addLabels(params.issue_number, params.labels);
|
|
240
|
+
return successResult(labels);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
244
|
+
return errorResult(`Error adding labels: ${message}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Handler for fractary_work_label_remove
|
|
249
|
+
*/
|
|
250
|
+
export async function handleWorkLabelRemove(params, config) {
|
|
251
|
+
try {
|
|
252
|
+
if (!validateWorkConfig(config)) {
|
|
253
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
254
|
+
}
|
|
255
|
+
const manager = new WorkManager(config.work);
|
|
256
|
+
await manager.removeLabels(params.issue_number, params.labels);
|
|
257
|
+
return successResult({ removed: true });
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
261
|
+
return errorResult(`Error removing labels: ${message}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Handler for fractary_work_label_set
|
|
266
|
+
*/
|
|
267
|
+
export async function handleWorkLabelSet(params, config) {
|
|
268
|
+
try {
|
|
269
|
+
if (!validateWorkConfig(config)) {
|
|
270
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
271
|
+
}
|
|
272
|
+
const manager = new WorkManager(config.work);
|
|
273
|
+
const labels = await manager.setLabels(params.issue_number, params.labels);
|
|
274
|
+
return successResult(labels);
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
278
|
+
return errorResult(`Error setting labels: ${message}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Handler for fractary_work_label_list
|
|
283
|
+
*/
|
|
284
|
+
export async function handleWorkLabelList(params, config) {
|
|
285
|
+
try {
|
|
286
|
+
if (!validateWorkConfig(config)) {
|
|
287
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
288
|
+
}
|
|
289
|
+
const manager = new WorkManager(config.work);
|
|
290
|
+
const labels = await manager.listLabels(params.issue_number);
|
|
291
|
+
return successResult(labels);
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
295
|
+
return errorResult(`Error listing labels: ${message}`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Handler for fractary_work_milestone_create
|
|
300
|
+
*/
|
|
301
|
+
export async function handleWorkMilestoneCreate(params, config) {
|
|
302
|
+
try {
|
|
303
|
+
if (!validateWorkConfig(config)) {
|
|
304
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
305
|
+
}
|
|
306
|
+
const manager = new WorkManager(config.work);
|
|
307
|
+
const milestone = await manager.createMilestone({
|
|
308
|
+
title: params.title,
|
|
309
|
+
description: params.description,
|
|
310
|
+
due_on: params.due_on,
|
|
311
|
+
});
|
|
312
|
+
return successResult(milestone);
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
316
|
+
return errorResult(`Error creating milestone: ${message}`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Handler for fractary_work_milestone_list
|
|
321
|
+
*/
|
|
322
|
+
export async function handleWorkMilestoneList(params, config) {
|
|
323
|
+
try {
|
|
324
|
+
if (!validateWorkConfig(config)) {
|
|
325
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
326
|
+
}
|
|
327
|
+
if (params.state && !isValidIssueState(params.state)) {
|
|
328
|
+
return errorResult(`Invalid state: ${params.state}. Must be 'open', 'closed', or 'all'`);
|
|
329
|
+
}
|
|
330
|
+
const manager = new WorkManager(config.work);
|
|
331
|
+
const milestones = await manager.listMilestones(isValidIssueState(params.state) ? params.state : undefined);
|
|
332
|
+
return successResult(milestones);
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
336
|
+
return errorResult(`Error listing milestones: ${message}`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Handler for fractary_work_milestone_set
|
|
341
|
+
*/
|
|
342
|
+
export async function handleWorkMilestoneSet(params, config) {
|
|
343
|
+
try {
|
|
344
|
+
if (!validateWorkConfig(config)) {
|
|
345
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
346
|
+
}
|
|
347
|
+
const manager = new WorkManager(config.work);
|
|
348
|
+
const issue = await manager.setMilestone(params.issue_number, params.milestone);
|
|
349
|
+
return successResult(issue);
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
353
|
+
return errorResult(`Error setting milestone: ${message}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Handler for fractary_work_milestone_remove
|
|
358
|
+
*/
|
|
359
|
+
export async function handleWorkMilestoneRemove(params, config) {
|
|
360
|
+
try {
|
|
361
|
+
if (!validateWorkConfig(config)) {
|
|
362
|
+
return errorResult('Work configuration is missing or incomplete. Please configure work.platform and work.token.');
|
|
363
|
+
}
|
|
364
|
+
const manager = new WorkManager(config.work);
|
|
365
|
+
const issue = await manager.removeMilestone(params.issue_number);
|
|
366
|
+
return successResult(issue);
|
|
367
|
+
}
|
|
368
|
+
catch (error) {
|
|
369
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
370
|
+
return errorResult(`Error removing milestone: ${message}`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
//# sourceMappingURL=work.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/handlers/work.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/core-mcp - MCP server for Fractary Core SDK
|
|
3
|
+
*
|
|
4
|
+
* This package provides MCP (Model Context Protocol) tools for universal access
|
|
5
|
+
* to Fractary Core SDK functionality across work tracking, repository management,
|
|
6
|
+
* specifications, logs, file storage, and documentation.
|
|
7
|
+
*/
|
|
8
|
+
export { loadConfig } from './config.js';
|
|
9
|
+
export type { Config } from './config.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
export { allTools } from './tools/index.js';
|
|
12
|
+
export { handleToolCall } from './handlers/index.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/core-mcp - MCP server for Fractary Core SDK
|
|
3
|
+
*
|
|
4
|
+
* This package provides MCP (Model Context Protocol) tools for universal access
|
|
5
|
+
* to Fractary Core SDK functionality across work tracking, repository management,
|
|
6
|
+
* specifications, logs, file storage, and documentation.
|
|
7
|
+
*/
|
|
8
|
+
// Export configuration
|
|
9
|
+
export { loadConfig } from './config.js';
|
|
10
|
+
// Export types
|
|
11
|
+
export * from './types.js';
|
|
12
|
+
// Export tools
|
|
13
|
+
export { allTools } from './tools/index.js';
|
|
14
|
+
// Export handlers
|
|
15
|
+
export { handleToolCall } from './handlers/index.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,eAAe;AACf,cAAc,YAAY,CAAC;AAE3B,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":""}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { loadConfig } from './config.js';
|
|
6
|
+
import { allTools } from './tools/index.js';
|
|
7
|
+
import { handleToolCall } from './handlers/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Main function to start the MCP server
|
|
10
|
+
*/
|
|
11
|
+
async function main() {
|
|
12
|
+
// Load configuration
|
|
13
|
+
const config = await loadConfig();
|
|
14
|
+
// Create MCP server
|
|
15
|
+
const server = new Server({
|
|
16
|
+
name: 'fractary-core',
|
|
17
|
+
version: '0.1.0',
|
|
18
|
+
}, {
|
|
19
|
+
capabilities: {
|
|
20
|
+
tools: {},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
// Register list tools handler
|
|
24
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
25
|
+
tools: allTools,
|
|
26
|
+
}));
|
|
27
|
+
// Register call tool handler
|
|
28
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
29
|
+
const { name, arguments: args } = request.params;
|
|
30
|
+
return handleToolCall(name, args || {}, config);
|
|
31
|
+
});
|
|
32
|
+
// Start server with stdio transport
|
|
33
|
+
const transport = new StdioServerTransport();
|
|
34
|
+
await server.connect(transport);
|
|
35
|
+
console.error('Fractary Core MCP server running on stdio');
|
|
36
|
+
}
|
|
37
|
+
// Run the server
|
|
38
|
+
main().catch((error) => {
|
|
39
|
+
console.error('Fatal error in MCP server:', error);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC,CAAC;IAEJ,6BAA6B;IAC7B,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC7D,CAAC;AAED,iBAAiB;AACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/tools/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,IAAI,EA0J3B,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool definitions for the Docs module
|
|
3
|
+
* 7 tools for documentation management
|
|
4
|
+
*/
|
|
5
|
+
export const docsTools = [
|
|
6
|
+
{
|
|
7
|
+
name: 'fractary_docs_create',
|
|
8
|
+
description: 'Create documentation',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
required: ['id', 'title', 'content'],
|
|
12
|
+
properties: {
|
|
13
|
+
id: {
|
|
14
|
+
type: 'string',
|
|
15
|
+
description: 'Document ID',
|
|
16
|
+
},
|
|
17
|
+
title: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
description: 'Document title',
|
|
20
|
+
},
|
|
21
|
+
content: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Document content',
|
|
24
|
+
},
|
|
25
|
+
type: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Document type',
|
|
28
|
+
},
|
|
29
|
+
tags: {
|
|
30
|
+
type: 'array',
|
|
31
|
+
items: { type: 'string' },
|
|
32
|
+
description: 'Document tags',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'fractary_docs_update',
|
|
39
|
+
description: 'Update documentation',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
required: ['id'],
|
|
43
|
+
properties: {
|
|
44
|
+
id: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Document ID',
|
|
47
|
+
},
|
|
48
|
+
title: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'New document title',
|
|
51
|
+
},
|
|
52
|
+
content: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'New document content',
|
|
55
|
+
},
|
|
56
|
+
tags: {
|
|
57
|
+
type: 'array',
|
|
58
|
+
items: { type: 'string' },
|
|
59
|
+
description: 'New document tags',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'fractary_docs_search',
|
|
66
|
+
description: 'Search documentation',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: 'object',
|
|
69
|
+
properties: {
|
|
70
|
+
text: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Search text',
|
|
73
|
+
},
|
|
74
|
+
tags: {
|
|
75
|
+
type: 'array',
|
|
76
|
+
items: { type: 'string' },
|
|
77
|
+
description: 'Filter by tags',
|
|
78
|
+
},
|
|
79
|
+
author: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: 'Filter by author',
|
|
82
|
+
},
|
|
83
|
+
limit: {
|
|
84
|
+
type: 'number',
|
|
85
|
+
description: 'Maximum number of results',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'fractary_docs_export',
|
|
92
|
+
description: 'Export documentation',
|
|
93
|
+
inputSchema: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
required: ['id'],
|
|
96
|
+
properties: {
|
|
97
|
+
id: {
|
|
98
|
+
type: 'string',
|
|
99
|
+
description: 'Document ID',
|
|
100
|
+
},
|
|
101
|
+
format: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
enum: ['markdown', 'html', 'pdf'],
|
|
104
|
+
description: 'Export format',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: 'fractary_docs_list',
|
|
111
|
+
description: 'List documentation',
|
|
112
|
+
inputSchema: {
|
|
113
|
+
type: 'object',
|
|
114
|
+
properties: {
|
|
115
|
+
tags: {
|
|
116
|
+
type: 'array',
|
|
117
|
+
items: { type: 'string' },
|
|
118
|
+
description: 'Filter by tags',
|
|
119
|
+
},
|
|
120
|
+
author: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
description: 'Filter by author',
|
|
123
|
+
},
|
|
124
|
+
limit: {
|
|
125
|
+
type: 'number',
|
|
126
|
+
description: 'Maximum number of results',
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'fractary_docs_read',
|
|
133
|
+
description: 'Read documentation content',
|
|
134
|
+
inputSchema: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
required: ['id'],
|
|
137
|
+
properties: {
|
|
138
|
+
id: {
|
|
139
|
+
type: 'string',
|
|
140
|
+
description: 'Document ID',
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'fractary_docs_delete',
|
|
147
|
+
description: 'Delete documentation',
|
|
148
|
+
inputSchema: {
|
|
149
|
+
type: 'object',
|
|
150
|
+
required: ['id'],
|
|
151
|
+
properties: {
|
|
152
|
+
id: {
|
|
153
|
+
type: 'string',
|
|
154
|
+
description: 'Document ID',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/tools/docs.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAW;IAC/B;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;YACpC,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,eAAe;iBAC7B;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,eAAe;iBAC7B;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACpC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,mBAAmB;iBACjC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC;oBACjC,WAAW,EAAE,eAAe;iBAC7B;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;aACF;SACF;KACF;CACF,CAAC"}
|