@structured-world/gitlab-mcp 4.5.0 → 5.2.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/README.md +18 -0
- package/dist/config.js +23 -23
- package/dist/config.js.map +1 -1
- package/dist/entities/core/index.d.ts +5 -5
- package/dist/entities/core/index.js +1 -1
- package/dist/entities/core/registry.d.ts +1 -1
- package/dist/entities/core/registry.js +149 -149
- package/dist/entities/core/registry.js.map +1 -1
- package/dist/entities/core/schema-readonly.d.ts +1 -1
- package/dist/entities/core/schema-readonly.js +132 -132
- package/dist/entities/core/schema-readonly.js.map +1 -1
- package/dist/entities/core/schema.d.ts +1 -1
- package/dist/entities/core/schema.js +59 -59
- package/dist/entities/files/index.d.ts +5 -5
- package/dist/entities/files/index.js +1 -1
- package/dist/entities/files/registry.d.ts +1 -1
- package/dist/entities/files/registry.js +32 -32
- package/dist/entities/files/registry.js.map +1 -1
- package/dist/entities/files/schema-readonly.d.ts +1 -1
- package/dist/entities/files/schema-readonly.js +10 -10
- package/dist/entities/files/schema.d.ts +1 -1
- package/dist/entities/files/schema.js +19 -19
- package/dist/entities/index.d.ts +10 -10
- package/dist/entities/labels/index.d.ts +5 -5
- package/dist/entities/labels/index.js +1 -1
- package/dist/entities/labels/registry.d.ts +1 -1
- package/dist/entities/labels/registry.js +31 -31
- package/dist/entities/labels/registry.js.map +1 -1
- package/dist/entities/labels/schema-readonly.d.ts +1 -1
- package/dist/entities/labels/schema-readonly.js +7 -7
- package/dist/entities/labels/schema.d.ts +1 -1
- package/dist/entities/labels/schema.js +11 -11
- package/dist/entities/milestones/index.d.ts +5 -5
- package/dist/entities/milestones/index.js +1 -1
- package/dist/entities/milestones/registry.d.ts +1 -1
- package/dist/entities/milestones/registry.js +49 -49
- package/dist/entities/milestones/registry.js.map +1 -1
- package/dist/entities/milestones/schema-readonly.d.ts +2 -2
- package/dist/entities/milestones/schema-readonly.js +11 -11
- package/dist/entities/milestones/schema.d.ts +1 -1
- package/dist/entities/milestones/schema.js +18 -18
- package/dist/entities/milestones/schema.js.map +1 -1
- package/dist/entities/mrs/index.d.ts +5 -5
- package/dist/entities/mrs/index.js +1 -1
- package/dist/entities/mrs/registry.d.ts +1 -1
- package/dist/entities/mrs/registry.js +118 -118
- package/dist/entities/mrs/registry.js.map +1 -1
- package/dist/entities/mrs/schema-readonly.d.ts +1 -1
- package/dist/entities/mrs/schema-readonly.js +47 -47
- package/dist/entities/mrs/schema-readonly.js.map +1 -1
- package/dist/entities/mrs/schema.d.ts +1 -1
- package/dist/entities/mrs/schema.js +86 -86
- package/dist/entities/mrs/schema.js.map +1 -1
- package/dist/entities/pipelines/index.d.ts +5 -5
- package/dist/entities/pipelines/index.js +1 -1
- package/dist/entities/pipelines/registry.d.ts +1 -1
- package/dist/entities/pipelines/registry.js +58 -58
- package/dist/entities/pipelines/registry.js.map +1 -1
- package/dist/entities/pipelines/schema-readonly.d.ts +1 -1
- package/dist/entities/pipelines/schema-readonly.js +65 -65
- package/dist/entities/pipelines/schema.d.ts +1 -1
- package/dist/entities/pipelines/schema.js +15 -15
- package/dist/entities/shared.d.ts +1 -1
- package/dist/entities/shared.js +7 -7
- package/dist/entities/utils.d.ts +1 -1
- package/dist/entities/utils.js +5 -5
- package/dist/entities/utils.js.map +1 -1
- package/dist/entities/variables/index.d.ts +5 -5
- package/dist/entities/variables/index.js +1 -1
- package/dist/entities/variables/registry.d.ts +1 -1
- package/dist/entities/variables/registry.js +29 -29
- package/dist/entities/variables/registry.js.map +1 -1
- package/dist/entities/variables/schema-readonly.d.ts +1 -1
- package/dist/entities/variables/schema-readonly.js +4 -4
- package/dist/entities/variables/schema.d.ts +1 -1
- package/dist/entities/variables/schema.js +32 -32
- package/dist/entities/variables/schema.js.map +1 -1
- package/dist/entities/wiki/index.d.ts +5 -5
- package/dist/entities/wiki/index.js +1 -1
- package/dist/entities/wiki/registry.d.ts +1 -1
- package/dist/entities/wiki/registry.js +26 -26
- package/dist/entities/wiki/registry.js.map +1 -1
- package/dist/entities/wiki/schema-readonly.d.ts +1 -1
- package/dist/entities/wiki/schema-readonly.js +4 -4
- package/dist/entities/wiki/schema.d.ts +1 -1
- package/dist/entities/wiki/schema.js +11 -11
- package/dist/entities/workitems/index.d.ts +5 -5
- package/dist/entities/workitems/index.js +1 -1
- package/dist/entities/workitems/registry.d.ts +1 -1
- package/dist/entities/workitems/registry.js +55 -55
- package/dist/entities/workitems/registry.js.map +1 -1
- package/dist/entities/workitems/schema-readonly.d.ts +1 -1
- package/dist/entities/workitems/schema-readonly.js +25 -25
- package/dist/entities/workitems/schema-readonly.js.map +1 -1
- package/dist/entities/workitems/schema.d.ts +1 -1
- package/dist/entities/workitems/schema.js +11 -11
- package/dist/graphql/DynamicWorkItemsQuery.d.ts +2 -2
- package/dist/graphql/DynamicWorkItemsQuery.js +47 -47
- package/dist/graphql/DynamicWorkItemsQuery.js.map +1 -1
- package/dist/graphql/client.d.ts +1 -1
- package/dist/graphql/client.js +4 -4
- package/dist/graphql/client.js.map +1 -1
- package/dist/graphql/index.d.ts +2 -2
- package/dist/graphql/workItems.d.ts +33 -33
- package/dist/graphql/workItems.js +29 -29
- package/dist/handlers.d.ts +1 -1
- package/dist/handlers.js +20 -20
- package/dist/handlers.js.map +1 -1
- package/dist/http-client.js +3 -3
- package/dist/logger.js +4 -4
- package/dist/registry-manager.d.ts +1 -1
- package/dist/registry-manager.js +27 -27
- package/dist/server.d.ts +1 -1
- package/dist/server.js +46 -46
- package/dist/services/ConnectionManager.d.ts +4 -4
- package/dist/services/ConnectionManager.js +13 -13
- package/dist/services/GitLabVersionDetector.d.ts +2 -2
- package/dist/services/GitLabVersionDetector.js +41 -41
- package/dist/services/GitLabVersionDetector.js.map +1 -1
- package/dist/services/SchemaIntrospector.d.ts +1 -1
- package/dist/services/SchemaIntrospector.js +42 -42
- package/dist/services/SchemaIntrospector.js.map +1 -1
- package/dist/services/ToolAvailability.d.ts +2 -2
- package/dist/services/ToolAvailability.js +279 -279
- package/dist/services/ToolAvailability.js.map +1 -1
- package/dist/services/WidgetAvailability.d.ts +3 -3
- package/dist/services/WidgetAvailability.js +32 -32
- package/dist/structured-world-gitlab-mcp-5.2.0.tgz +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types.js +4 -4
- package/dist/utils/fetch.d.ts +4 -4
- package/dist/utils/fetch.js +15 -15
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/idConversion.js +33 -33
- package/dist/utils/idConversion.js.map +1 -1
- package/dist/utils/namespace.d.ts +2 -2
- package/dist/utils/namespace.js +13 -13
- package/dist/utils/smart-user-search.d.ts +1 -1
- package/dist/utils/smart-user-search.js +10 -10
- package/package.json +1 -1
- package/dist/structured-world-gitlab-mcp-4.5.0.tgz +0 -0
|
@@ -39,19 +39,19 @@ class SchemaIntrospector {
|
|
|
39
39
|
return this.cachedSchema;
|
|
40
40
|
}
|
|
41
41
|
try {
|
|
42
|
-
logger_1.logger.debug(
|
|
42
|
+
logger_1.logger.debug("Introspecting GitLab GraphQL schema...");
|
|
43
43
|
const result = await this.client.request(INTROSPECTION_QUERY);
|
|
44
44
|
const types = result.__schema.types;
|
|
45
|
-
const workItemWidgetType = types.find(
|
|
46
|
-
const workItemWidgetTypes = workItemWidgetType?.enumValues?.map(
|
|
45
|
+
const workItemWidgetType = types.find(type => type.name === "WorkItemWidgetType");
|
|
46
|
+
const workItemWidgetTypes = workItemWidgetType?.enumValues?.map(value => value.name) ?? [];
|
|
47
47
|
const typeDefinitions = new Map();
|
|
48
|
-
const relevantTypes = types.filter(
|
|
49
|
-
(type.name.startsWith(
|
|
50
|
-
type.name.includes(
|
|
51
|
-
type.name ===
|
|
52
|
-
type.name ===
|
|
53
|
-
type.name ===
|
|
54
|
-
type.name ===
|
|
48
|
+
const relevantTypes = types.filter(type => type.name &&
|
|
49
|
+
(type.name.startsWith("WorkItem") ||
|
|
50
|
+
type.name.includes("Widget") ||
|
|
51
|
+
type.name === "AwardEmoji" ||
|
|
52
|
+
type.name === "Milestone" ||
|
|
53
|
+
type.name === "User" ||
|
|
54
|
+
type.name === "Label"));
|
|
55
55
|
for (const type of relevantTypes) {
|
|
56
56
|
typeDefinitions.set(type.name, {
|
|
57
57
|
name: type.name,
|
|
@@ -72,69 +72,69 @@ class SchemaIntrospector {
|
|
|
72
72
|
widgetTypes: workItemWidgetTypes.length,
|
|
73
73
|
typeDefinitions: typeDefinitions.size,
|
|
74
74
|
features: availableFeatures.size,
|
|
75
|
-
},
|
|
75
|
+
}, "GraphQL schema introspection completed");
|
|
76
76
|
return this.cachedSchema;
|
|
77
77
|
}
|
|
78
78
|
catch (error) {
|
|
79
|
-
logger_1.logger.warn({ err: error },
|
|
79
|
+
logger_1.logger.warn({ err: error }, "Schema introspection failed, using fallback schema info");
|
|
80
80
|
this.cachedSchema = {
|
|
81
81
|
workItemWidgetTypes: [
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
82
|
+
"ASSIGNEES",
|
|
83
|
+
"LABELS",
|
|
84
|
+
"MILESTONE",
|
|
85
|
+
"DESCRIPTION",
|
|
86
|
+
"START_AND_DUE_DATE",
|
|
87
|
+
"WEIGHT",
|
|
88
|
+
"TIME_TRACKING",
|
|
89
|
+
"HEALTH_STATUS",
|
|
90
|
+
"COLOR",
|
|
91
|
+
"NOTIFICATIONS",
|
|
92
|
+
"NOTES",
|
|
93
93
|
],
|
|
94
94
|
typeDefinitions: new Map(),
|
|
95
|
-
availableFeatures: new Set([
|
|
95
|
+
availableFeatures: new Set(["workItems", "epics", "issues"]),
|
|
96
96
|
};
|
|
97
97
|
return this.cachedSchema;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
isWidgetTypeAvailable(widgetType) {
|
|
101
101
|
if (!this.cachedSchema) {
|
|
102
|
-
throw new Error(
|
|
102
|
+
throw new Error("Schema not introspected yet. Call introspectSchema() first.");
|
|
103
103
|
}
|
|
104
104
|
return this.cachedSchema.availableFeatures.has(widgetType);
|
|
105
105
|
}
|
|
106
106
|
getFieldsForType(typeName) {
|
|
107
107
|
if (!this.cachedSchema) {
|
|
108
|
-
throw new Error(
|
|
108
|
+
throw new Error("Schema not introspected yet. Call introspectSchema() first.");
|
|
109
109
|
}
|
|
110
110
|
const typeInfo = this.cachedSchema.typeDefinitions.get(typeName);
|
|
111
111
|
if (typeInfo?.fields) {
|
|
112
112
|
return typeInfo.fields;
|
|
113
113
|
}
|
|
114
|
-
if (typeName ===
|
|
115
|
-
return [{ name:
|
|
114
|
+
if (typeName === "WorkItemWidgetAssignees") {
|
|
115
|
+
return [{ name: "assignees", type: { name: "UserConnection", kind: "OBJECT" } }];
|
|
116
116
|
}
|
|
117
|
-
if (typeName ===
|
|
118
|
-
return [{ name:
|
|
117
|
+
if (typeName === "WorkItemWidgetLabels") {
|
|
118
|
+
return [{ name: "labels", type: { name: "LabelConnection", kind: "OBJECT" } }];
|
|
119
119
|
}
|
|
120
|
-
if (typeName ===
|
|
121
|
-
return [{ name:
|
|
120
|
+
if (typeName === "WorkItemWidgetMilestone") {
|
|
121
|
+
return [{ name: "milestone", type: { name: "Milestone", kind: "OBJECT" } }];
|
|
122
122
|
}
|
|
123
123
|
return [];
|
|
124
124
|
}
|
|
125
125
|
hasField(typeName, fieldName) {
|
|
126
126
|
const fields = this.getFieldsForType(typeName);
|
|
127
|
-
return fields.some(
|
|
127
|
+
return fields.some(field => field.name === fieldName);
|
|
128
128
|
}
|
|
129
129
|
getAvailableWidgetTypes() {
|
|
130
130
|
if (!this.cachedSchema) {
|
|
131
|
-
throw new Error(
|
|
131
|
+
throw new Error("Schema not introspected yet. Call introspectSchema() first.");
|
|
132
132
|
}
|
|
133
133
|
return this.cachedSchema.workItemWidgetTypes;
|
|
134
134
|
}
|
|
135
135
|
generateSafeWidgetQuery(requestedWidgets) {
|
|
136
136
|
if (!this.cachedSchema) {
|
|
137
|
-
throw new Error(
|
|
137
|
+
throw new Error("Schema not introspected yet. Call introspectSchema() first.");
|
|
138
138
|
}
|
|
139
139
|
const safeWidgets = [];
|
|
140
140
|
for (const widget of requestedWidgets) {
|
|
@@ -149,28 +149,28 @@ class SchemaIntrospector {
|
|
|
149
149
|
if (safeFields.length > 0) {
|
|
150
150
|
safeWidgets.push(`
|
|
151
151
|
... on ${widgetTypeName} {
|
|
152
|
-
${safeFields.join(
|
|
152
|
+
${safeFields.join("\n ")}
|
|
153
153
|
}
|
|
154
154
|
`);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
-
return safeWidgets.join(
|
|
158
|
+
return safeWidgets.join("\n");
|
|
159
159
|
}
|
|
160
160
|
generateSafeFieldSelections(fields) {
|
|
161
161
|
const safeFields = [];
|
|
162
162
|
for (const field of fields) {
|
|
163
|
-
if (field.type.kind ===
|
|
163
|
+
if (field.type.kind === "SCALAR" || field.type.kind === "ENUM") {
|
|
164
164
|
safeFields.push(field.name);
|
|
165
165
|
}
|
|
166
|
-
else if (field.type.kind ===
|
|
167
|
-
if (field.name ===
|
|
166
|
+
else if (field.type.kind === "OBJECT" && field.name !== "type") {
|
|
167
|
+
if (field.name === "milestone") {
|
|
168
168
|
safeFields.push(`${field.name} { id title state }`);
|
|
169
169
|
}
|
|
170
|
-
else if (field.name ===
|
|
170
|
+
else if (field.name === "assignees" || field.name === "participants") {
|
|
171
171
|
safeFields.push(`${field.name} { nodes { id username } }`);
|
|
172
172
|
}
|
|
173
|
-
else if (field.name ===
|
|
173
|
+
else if (field.name === "labels") {
|
|
174
174
|
safeFields.push(`${field.name} { nodes { id title color } }`);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaIntrospector.js","sourceRoot":"","sources":["../../src/services/SchemaIntrospector.ts"],"names":[],"mappings":";;;AACA,6CAAkC;AAClC,sCAAmC;AAuCnC,MAAM,mBAAmB,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAC;AAEF,MAAa,kBAAkB;IACrB,MAAM,CAAgB;IACtB,YAAY,GAAsB,IAAI,CAAC;IAE/C,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB,mBAAmB,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAGpC,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"SchemaIntrospector.js","sourceRoot":"","sources":["../../src/services/SchemaIntrospector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface ToolRequirement {
|
|
2
2
|
minVersion: number;
|
|
3
|
-
requiredTier:
|
|
3
|
+
requiredTier: "free" | "premium" | "ultimate";
|
|
4
4
|
notes?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class ToolAvailability {
|
|
@@ -12,7 +12,7 @@ export declare class ToolAvailability {
|
|
|
12
12
|
private static parseVersion;
|
|
13
13
|
private static isTierSufficient;
|
|
14
14
|
static filterToolsByAvailability(tools: string[]): string[];
|
|
15
|
-
static getToolsByTier(tier:
|
|
15
|
+
static getToolsByTier(tier: "free" | "premium" | "ultimate"): string[];
|
|
16
16
|
static getToolsByMinVersion(minVersion: number): string[];
|
|
17
17
|
}
|
|
18
18
|
export {};
|