golutra-mcp 0.1.0
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/.env.example +14 -0
- package/CHANGELOG.md +32 -0
- package/LICENSE +184 -0
- package/README.md +158 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cli-runner.d.ts +7 -0
- package/dist/lib/cli-runner.js +107 -0
- package/dist/lib/cli-runner.js.map +1 -0
- package/dist/lib/context.d.ts +17 -0
- package/dist/lib/context.js +109 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.js +17 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/golutra-client.d.ts +54 -0
- package/dist/lib/golutra-client.js +131 -0
- package/dist/lib/golutra-client.js.map +1 -0
- package/dist/lib/project-skills.d.ts +6 -0
- package/dist/lib/project-skills.js +22 -0
- package/dist/lib/project-skills.js.map +1 -0
- package/dist/lib/tool-results.d.ts +15 -0
- package/dist/lib/tool-results.js +58 -0
- package/dist/lib/tool-results.js.map +1 -0
- package/dist/lib/toolkit.d.ts +4 -0
- package/dist/lib/toolkit.js +354 -0
- package/dist/lib/toolkit.js.map +1 -0
- package/dist/lib/types.d.ts +116 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +71 -0
- package/startup_processmd.md +216 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { findProjectSkillByName, readProjectSkillDocument } from "./project-skills.js";
|
|
3
|
+
import { buildToolError, buildToolSuccess } from "./tool-results.js";
|
|
4
|
+
const optionalWorkspacePath = z.string().trim().min(1).optional();
|
|
5
|
+
const optionalCliPath = z.string().trim().min(1).optional();
|
|
6
|
+
const optionalProfile = z.enum(["dev", "canary", "stable"]).optional();
|
|
7
|
+
const optionalTimeout = z.number().int().positive().max(300_000).optional();
|
|
8
|
+
const optionalConversationId = z.string().trim().min(1).optional();
|
|
9
|
+
const roadmapTaskSchema = z.object({
|
|
10
|
+
id: z.number().int().positive(),
|
|
11
|
+
number: z.string().trim().optional(),
|
|
12
|
+
title: z.string().trim().min(1),
|
|
13
|
+
status: z.enum(["pending", "in-progress", "done"]),
|
|
14
|
+
pinned: z.boolean().optional()
|
|
15
|
+
});
|
|
16
|
+
const roadmapSchema = z.object({
|
|
17
|
+
objective: z.string(),
|
|
18
|
+
tasks: z.array(roadmapTaskSchema)
|
|
19
|
+
});
|
|
20
|
+
export function registerTools(server, contextStore, gateway) {
|
|
21
|
+
server.registerTool("golutra-get-context", {
|
|
22
|
+
title: "Get Golutra MCP context",
|
|
23
|
+
description: "Read the current default golutra-cli path, profile, workspace path, and timeout."
|
|
24
|
+
}, () => buildToolSuccess("Current MCP context.", contextStore.getSnapshot()));
|
|
25
|
+
server.registerTool("golutra-set-context", {
|
|
26
|
+
title: "Set Golutra MCP context",
|
|
27
|
+
description: "Update the default golutra-cli path, profile, workspace path, or timeout for later tool calls.",
|
|
28
|
+
inputSchema: {
|
|
29
|
+
cliPath: optionalCliPath,
|
|
30
|
+
profile: optionalProfile,
|
|
31
|
+
workspacePath: optionalWorkspacePath,
|
|
32
|
+
timeoutMs: optionalTimeout
|
|
33
|
+
}
|
|
34
|
+
}, (input) => {
|
|
35
|
+
try {
|
|
36
|
+
const nextContext = contextStore.update(input);
|
|
37
|
+
return buildToolSuccess("Updated MCP context.", nextContext);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return buildToolError(error);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
server.registerTool("golutra-reset-context", {
|
|
44
|
+
title: "Reset Golutra MCP context",
|
|
45
|
+
description: "Reset the stored CLI path, profile, workspace path, and timeout back to the startup environment defaults."
|
|
46
|
+
}, () => buildToolSuccess("Reset MCP context to startup defaults.", contextStore.reset()));
|
|
47
|
+
server.registerTool("golutra-diagnose", {
|
|
48
|
+
title: "Diagnose Golutra connectivity",
|
|
49
|
+
description: "Check whether golutra-cli is callable and, when workspacePath and userId are available, whether the running Golutra app accepts workspace-scoped commands.",
|
|
50
|
+
inputSchema: {
|
|
51
|
+
userId: z.string().trim().min(1).optional(),
|
|
52
|
+
workspacePath: optionalWorkspacePath,
|
|
53
|
+
profile: optionalProfile,
|
|
54
|
+
cliPath: optionalCliPath,
|
|
55
|
+
timeoutMs: optionalTimeout
|
|
56
|
+
}
|
|
57
|
+
}, async (input) => {
|
|
58
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
59
|
+
const diagnosis = {
|
|
60
|
+
context: runtimeContext,
|
|
61
|
+
checks: {
|
|
62
|
+
cli: {
|
|
63
|
+
ok: false
|
|
64
|
+
},
|
|
65
|
+
app: {
|
|
66
|
+
ok: false,
|
|
67
|
+
skipped: true
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
try {
|
|
72
|
+
const skills = await gateway.listSkills(runtimeContext, {});
|
|
73
|
+
diagnosis.checks = {
|
|
74
|
+
...diagnosis.checks,
|
|
75
|
+
cli: {
|
|
76
|
+
ok: true,
|
|
77
|
+
builtInSkillNames: Object.keys(skills.skills ?? {})
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
diagnosis.checks = {
|
|
83
|
+
...diagnosis.checks,
|
|
84
|
+
cli: {
|
|
85
|
+
ok: false,
|
|
86
|
+
error: buildToolError(error).structuredContent
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
return buildToolSuccess("Golutra diagnosis completed.", diagnosis);
|
|
90
|
+
}
|
|
91
|
+
const workspacePath = runtimeContext.workspacePath;
|
|
92
|
+
if (!workspacePath || !input.userId) {
|
|
93
|
+
diagnosis.checks = {
|
|
94
|
+
...diagnosis.checks,
|
|
95
|
+
app: {
|
|
96
|
+
ok: false,
|
|
97
|
+
skipped: true,
|
|
98
|
+
reason: "workspacePath and userId are both required for an app-backed chat.conversations.list probe."
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
return buildToolSuccess("Golutra diagnosis completed.", diagnosis);
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const conversations = await gateway.listConversations(runtimeContext, {
|
|
105
|
+
workspacePath,
|
|
106
|
+
userId: input.userId
|
|
107
|
+
});
|
|
108
|
+
diagnosis.checks = {
|
|
109
|
+
...diagnosis.checks,
|
|
110
|
+
app: {
|
|
111
|
+
ok: true,
|
|
112
|
+
skipped: false,
|
|
113
|
+
channelCount: Array.isArray(conversations.channels)
|
|
114
|
+
? conversations.channels.length
|
|
115
|
+
: 0,
|
|
116
|
+
defaultChannelId: conversations.defaultChannelId
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
diagnosis.checks = {
|
|
122
|
+
...diagnosis.checks,
|
|
123
|
+
app: {
|
|
124
|
+
ok: false,
|
|
125
|
+
skipped: false,
|
|
126
|
+
error: buildToolError(error).structuredContent
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return buildToolSuccess("Golutra diagnosis completed.", diagnosis);
|
|
131
|
+
});
|
|
132
|
+
server.registerTool("golutra-list-conversations", {
|
|
133
|
+
title: "List Golutra conversations",
|
|
134
|
+
description: "List channel and direct-message conversations visible to a workspace member.",
|
|
135
|
+
inputSchema: {
|
|
136
|
+
userId: z.string().trim().min(1),
|
|
137
|
+
workspacePath: optionalWorkspacePath,
|
|
138
|
+
profile: optionalProfile
|
|
139
|
+
}
|
|
140
|
+
}, async (input) => {
|
|
141
|
+
try {
|
|
142
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
143
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
144
|
+
const result = await gateway.listConversations(runtimeContext, {
|
|
145
|
+
workspacePath,
|
|
146
|
+
userId: input.userId
|
|
147
|
+
});
|
|
148
|
+
return buildToolSuccess("Listed conversations.", result);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
return buildToolError(error);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
server.registerTool("golutra-list-messages", {
|
|
155
|
+
title: "List Golutra messages",
|
|
156
|
+
description: "Read recent messages from a Golutra channel or direct conversation.",
|
|
157
|
+
inputSchema: {
|
|
158
|
+
conversationId: z.string().trim().min(1),
|
|
159
|
+
workspacePath: optionalWorkspacePath,
|
|
160
|
+
profile: optionalProfile,
|
|
161
|
+
limit: z.number().int().positive().max(200).optional(),
|
|
162
|
+
beforeId: z.string().trim().min(1).optional()
|
|
163
|
+
}
|
|
164
|
+
}, async (input) => {
|
|
165
|
+
try {
|
|
166
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
167
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
168
|
+
const result = await gateway.listMessages(runtimeContext, {
|
|
169
|
+
workspacePath,
|
|
170
|
+
conversationId: input.conversationId,
|
|
171
|
+
limit: input.limit,
|
|
172
|
+
beforeId: input.beforeId
|
|
173
|
+
});
|
|
174
|
+
return buildToolSuccess("Listed messages.", result);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
return buildToolError(error);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
server.registerTool("golutra-send-message", {
|
|
181
|
+
title: "Send a Golutra message",
|
|
182
|
+
description: "Send a Golutra chat message through golutra-cli using a structured chat.send payload.",
|
|
183
|
+
inputSchema: {
|
|
184
|
+
conversationId: z.string().trim().min(1),
|
|
185
|
+
senderId: z.string().trim().min(1),
|
|
186
|
+
text: z.string().trim().min(1),
|
|
187
|
+
mentionIds: z.array(z.string().trim().min(1)).min(1),
|
|
188
|
+
workspacePath: optionalWorkspacePath,
|
|
189
|
+
profile: optionalProfile
|
|
190
|
+
}
|
|
191
|
+
}, async (input) => {
|
|
192
|
+
try {
|
|
193
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
194
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
195
|
+
const result = await gateway.sendMessage(runtimeContext, {
|
|
196
|
+
workspacePath,
|
|
197
|
+
conversationId: input.conversationId,
|
|
198
|
+
senderId: input.senderId,
|
|
199
|
+
text: input.text,
|
|
200
|
+
mentionIds: input.mentionIds
|
|
201
|
+
});
|
|
202
|
+
return buildToolSuccess("Sent message.", result);
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
return buildToolError(error);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
server.registerTool("golutra-read-roadmap", {
|
|
209
|
+
title: "Read Golutra roadmap",
|
|
210
|
+
description: "Read the workspace roadmap or a conversation-specific roadmap through golutra-cli.",
|
|
211
|
+
inputSchema: {
|
|
212
|
+
conversationId: optionalConversationId,
|
|
213
|
+
workspacePath: optionalWorkspacePath,
|
|
214
|
+
profile: optionalProfile
|
|
215
|
+
}
|
|
216
|
+
}, async (input) => {
|
|
217
|
+
try {
|
|
218
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
219
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
220
|
+
const result = await gateway.readRoadmap(runtimeContext, {
|
|
221
|
+
workspacePath,
|
|
222
|
+
...(input.conversationId ? { conversationId: input.conversationId } : {})
|
|
223
|
+
});
|
|
224
|
+
return buildToolSuccess("Read roadmap.", result);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
return buildToolError(error);
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
server.registerTool("golutra-update-roadmap", {
|
|
231
|
+
title: "Update Golutra roadmap",
|
|
232
|
+
description: "Replace the current workspace or conversation roadmap through golutra-cli.",
|
|
233
|
+
inputSchema: {
|
|
234
|
+
conversationId: optionalConversationId,
|
|
235
|
+
workspacePath: optionalWorkspacePath,
|
|
236
|
+
profile: optionalProfile,
|
|
237
|
+
readOnly: z.boolean().optional(),
|
|
238
|
+
roadmap: roadmapSchema
|
|
239
|
+
}
|
|
240
|
+
}, async (input) => {
|
|
241
|
+
try {
|
|
242
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
243
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
244
|
+
const result = await gateway.updateRoadmap(runtimeContext, {
|
|
245
|
+
workspacePath,
|
|
246
|
+
...(input.conversationId ? { conversationId: input.conversationId } : {}),
|
|
247
|
+
...(typeof input.readOnly === "boolean" ? { readOnly: input.readOnly } : {}),
|
|
248
|
+
roadmap: input.roadmap
|
|
249
|
+
});
|
|
250
|
+
return buildToolSuccess("Updated roadmap.", result);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
return buildToolError(error);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
server.registerTool("golutra-list-skills", {
|
|
257
|
+
title: "List Golutra CLI skills",
|
|
258
|
+
description: "List built-in golutra-cli skills and optionally append workspace project skills.",
|
|
259
|
+
inputSchema: {
|
|
260
|
+
workspacePath: optionalWorkspacePath,
|
|
261
|
+
profile: optionalProfile
|
|
262
|
+
}
|
|
263
|
+
}, async (input) => {
|
|
264
|
+
try {
|
|
265
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
266
|
+
const workspacePath = runtimeContext.workspacePath;
|
|
267
|
+
const result = await gateway.listSkills(runtimeContext, {
|
|
268
|
+
...(workspacePath ? { workspacePath } : {})
|
|
269
|
+
});
|
|
270
|
+
return buildToolSuccess("Listed skills.", result);
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
return buildToolError(error);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
server.registerTool("golutra-get-skill", {
|
|
277
|
+
title: "Get Golutra CLI skill detail",
|
|
278
|
+
description: "Read the detailed schema for a built-in golutra-cli skill.",
|
|
279
|
+
inputSchema: {
|
|
280
|
+
skillName: z.string().trim().min(1),
|
|
281
|
+
profile: optionalProfile
|
|
282
|
+
}
|
|
283
|
+
}, async (input) => {
|
|
284
|
+
try {
|
|
285
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
286
|
+
const result = await gateway.getSkill(runtimeContext, input.skillName);
|
|
287
|
+
return buildToolSuccess(`Loaded skill ${input.skillName}.`, result);
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
return buildToolError(error);
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
server.registerTool("golutra-validate-skill", {
|
|
294
|
+
title: "Validate a Golutra skill directory",
|
|
295
|
+
description: "Run golutra-cli skill-validate against a local skill directory that contains SKILL.md.",
|
|
296
|
+
inputSchema: {
|
|
297
|
+
skillPath: z.string().trim().min(1),
|
|
298
|
+
profile: optionalProfile
|
|
299
|
+
}
|
|
300
|
+
}, async (input) => {
|
|
301
|
+
try {
|
|
302
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
303
|
+
const result = await gateway.validateSkill(runtimeContext, input.skillPath);
|
|
304
|
+
return buildToolSuccess("Validated skill.", result);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
return buildToolError(error);
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
server.registerTool("golutra-list-project-skills", {
|
|
311
|
+
title: "List Golutra project skills",
|
|
312
|
+
description: "List only workspace-resolved project skills discovered from .golutra/skills.",
|
|
313
|
+
inputSchema: {
|
|
314
|
+
workspacePath: optionalWorkspacePath,
|
|
315
|
+
profile: optionalProfile
|
|
316
|
+
}
|
|
317
|
+
}, async (input) => {
|
|
318
|
+
try {
|
|
319
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
320
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
321
|
+
const result = await gateway.listSkills(runtimeContext, { workspacePath });
|
|
322
|
+
return buildToolSuccess("Listed project skills.", {
|
|
323
|
+
projectSkillsRoot: result.projectSkillsRoot,
|
|
324
|
+
projectSkills: result.projectSkills ?? [],
|
|
325
|
+
projectSkillsNote: result.projectSkillsNote
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
return buildToolError(error);
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
server.registerTool("golutra-read-project-skill", {
|
|
333
|
+
title: "Read a Golutra project skill document",
|
|
334
|
+
description: "Discover a workspace project skill by name and return its SKILL.md content.",
|
|
335
|
+
inputSchema: {
|
|
336
|
+
skillName: z.string().trim().min(1),
|
|
337
|
+
workspacePath: optionalWorkspacePath,
|
|
338
|
+
profile: optionalProfile
|
|
339
|
+
}
|
|
340
|
+
}, async (input) => {
|
|
341
|
+
try {
|
|
342
|
+
const workspacePath = contextStore.requireWorkspacePath(input);
|
|
343
|
+
const runtimeContext = contextStore.resolveCommandContext(input);
|
|
344
|
+
const skills = await gateway.listSkills(runtimeContext, { workspacePath });
|
|
345
|
+
const projectSkill = findProjectSkillByName(skills, input.skillName);
|
|
346
|
+
const result = await readProjectSkillDocument(projectSkill);
|
|
347
|
+
return buildToolSuccess(`Read project skill ${input.skillName}.`, result);
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
return buildToolError(error);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=toolkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../../src/lib/toolkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export declare const GOLUTRA_PROFILES: readonly ["dev", "canary", "stable"];
|
|
2
|
+
export type GolutraProfile = (typeof GOLUTRA_PROFILES)[number];
|
|
3
|
+
export interface RuntimeContextSnapshot {
|
|
4
|
+
cliPath: string;
|
|
5
|
+
profile?: GolutraProfile | undefined;
|
|
6
|
+
workspacePath?: string | undefined;
|
|
7
|
+
timeoutMs: number;
|
|
8
|
+
}
|
|
9
|
+
export interface CommandContextInput {
|
|
10
|
+
cliPath?: string | undefined;
|
|
11
|
+
profile?: GolutraProfile | undefined;
|
|
12
|
+
workspacePath?: string | undefined;
|
|
13
|
+
timeoutMs?: number | undefined;
|
|
14
|
+
}
|
|
15
|
+
export interface CliCommandRequest {
|
|
16
|
+
cliPath: string;
|
|
17
|
+
args: string[];
|
|
18
|
+
timeoutMs: number;
|
|
19
|
+
}
|
|
20
|
+
export interface StructuredCommandEnvelope {
|
|
21
|
+
ok: boolean;
|
|
22
|
+
requestId?: string | undefined;
|
|
23
|
+
result?: {
|
|
24
|
+
status: string;
|
|
25
|
+
message?: string | undefined;
|
|
26
|
+
data?: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
error?: string | undefined;
|
|
29
|
+
}
|
|
30
|
+
export interface ListSkillsResponse {
|
|
31
|
+
skills?: Record<string, {
|
|
32
|
+
description?: string | undefined;
|
|
33
|
+
}> | undefined;
|
|
34
|
+
projectSkillsRoot?: string | undefined;
|
|
35
|
+
projectSkills?: ProjectSkillDescriptor[] | undefined;
|
|
36
|
+
projectSkillsNote?: string | undefined;
|
|
37
|
+
}
|
|
38
|
+
export interface ProjectSkillDescriptor {
|
|
39
|
+
name: string;
|
|
40
|
+
targetPath: string;
|
|
41
|
+
skillMdPath: string;
|
|
42
|
+
relativePath: string;
|
|
43
|
+
}
|
|
44
|
+
export interface SkillValidationResult {
|
|
45
|
+
ok?: boolean | undefined;
|
|
46
|
+
message?: string | undefined;
|
|
47
|
+
errors?: unknown[] | undefined;
|
|
48
|
+
}
|
|
49
|
+
export interface ChatConversationsListData {
|
|
50
|
+
channels?: unknown[] | undefined;
|
|
51
|
+
directs?: unknown[] | undefined;
|
|
52
|
+
conversations?: unknown[] | undefined;
|
|
53
|
+
defaultChannelId?: string | undefined;
|
|
54
|
+
}
|
|
55
|
+
export interface ChatMessagesListData {
|
|
56
|
+
messages?: unknown[] | undefined;
|
|
57
|
+
}
|
|
58
|
+
export interface ChatSendData {
|
|
59
|
+
messageId?: string | undefined;
|
|
60
|
+
}
|
|
61
|
+
export interface RoadmapResultData {
|
|
62
|
+
workspaceId?: string | undefined;
|
|
63
|
+
workspacePath?: string | undefined;
|
|
64
|
+
conversationId?: string | null | undefined;
|
|
65
|
+
roadmap?: unknown;
|
|
66
|
+
source?: string | undefined;
|
|
67
|
+
storage?: string | undefined;
|
|
68
|
+
warning?: string | undefined;
|
|
69
|
+
}
|
|
70
|
+
export type StructuredCommand = {
|
|
71
|
+
type: "chat.send";
|
|
72
|
+
payload: {
|
|
73
|
+
workspacePath: string;
|
|
74
|
+
conversationId: string;
|
|
75
|
+
senderId: string;
|
|
76
|
+
text: string;
|
|
77
|
+
mentionIds: string[];
|
|
78
|
+
};
|
|
79
|
+
} | {
|
|
80
|
+
type: "chat.conversations.list";
|
|
81
|
+
payload: {
|
|
82
|
+
workspacePath: string;
|
|
83
|
+
userId: string;
|
|
84
|
+
};
|
|
85
|
+
} | {
|
|
86
|
+
type: "chat.messages.list";
|
|
87
|
+
payload: {
|
|
88
|
+
workspacePath: string;
|
|
89
|
+
conversationId: string;
|
|
90
|
+
limit?: number | undefined;
|
|
91
|
+
beforeId?: string | undefined;
|
|
92
|
+
};
|
|
93
|
+
} | {
|
|
94
|
+
type: "roadmap.read";
|
|
95
|
+
payload: {
|
|
96
|
+
workspacePath: string;
|
|
97
|
+
conversationId?: string | undefined;
|
|
98
|
+
};
|
|
99
|
+
} | {
|
|
100
|
+
type: "roadmap.update";
|
|
101
|
+
payload: {
|
|
102
|
+
workspacePath: string;
|
|
103
|
+
conversationId?: string | undefined;
|
|
104
|
+
readOnly?: boolean | undefined;
|
|
105
|
+
roadmap: {
|
|
106
|
+
objective: string;
|
|
107
|
+
tasks: Array<{
|
|
108
|
+
id: number;
|
|
109
|
+
number?: string | undefined;
|
|
110
|
+
title: string;
|
|
111
|
+
status: "pending" | "in-progress" | "done";
|
|
112
|
+
pinned?: boolean | undefined;
|
|
113
|
+
}>;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "golutra-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Model Context Protocol server for Golutra via golutra-cli.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"private": false,
|
|
7
|
+
"author": "Golutra Contributors",
|
|
8
|
+
"license": "Apache-2.0",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/golutra/golutra-mcp.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/golutra/golutra-mcp#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/golutra/golutra-mcp/issues"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"golutra-mcp": "dist/index.js"
|
|
20
|
+
},
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
".env.example",
|
|
27
|
+
"README.md",
|
|
28
|
+
"startup_processmd.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"CHANGELOG.md"
|
|
31
|
+
],
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=20.11"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"golutra",
|
|
40
|
+
"mcp",
|
|
41
|
+
"model-context-protocol",
|
|
42
|
+
"ai",
|
|
43
|
+
"cli"
|
|
44
|
+
],
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
47
|
+
"zod": "^3.24.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@eslint/js": "^9.21.0",
|
|
51
|
+
"@types/node": "^22.13.0",
|
|
52
|
+
"eslint": "^9.21.0",
|
|
53
|
+
"globals": "^15.15.0",
|
|
54
|
+
"tsx": "^4.19.0",
|
|
55
|
+
"typescript": "^5.8.0",
|
|
56
|
+
"typescript-eslint": "^8.25.0",
|
|
57
|
+
"vitest": "^3.0.0"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"build": "tsc -p tsconfig.json",
|
|
61
|
+
"check": "npm run lint && npm run typecheck && npm run test && npm run build",
|
|
62
|
+
"clean": "node --eval \"for (const path of ['dist','coverage']) { try { require('node:fs').rmSync(path, { recursive: true, force: true }); } catch {} }\"",
|
|
63
|
+
"dev": "tsx src/index.ts",
|
|
64
|
+
"lint": "eslint .",
|
|
65
|
+
"package:check": "npm pack --dry-run",
|
|
66
|
+
"prepack": "npm run build",
|
|
67
|
+
"test:e2e": "npm run build && node scripts/e2e-smoke.mjs",
|
|
68
|
+
"test": "vitest run",
|
|
69
|
+
"typecheck": "tsc --noEmit"
|
|
70
|
+
}
|
|
71
|
+
}
|