@structured-world/gitlab-mcp 6.55.1 → 6.57.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.
Files changed (40) hide show
  1. package/README.md +3 -1
  2. package/README.md.in +2 -0
  3. package/dist/src/config.d.ts +1 -0
  4. package/dist/src/config.js +3 -2
  5. package/dist/src/config.js.map +1 -1
  6. package/dist/src/dashboard/handler.d.ts +4 -0
  7. package/dist/src/dashboard/handler.js +37 -0
  8. package/dist/src/dashboard/handler.js.map +1 -0
  9. package/dist/src/dashboard/html-template.d.ts +2 -0
  10. package/dist/src/dashboard/html-template.js +443 -0
  11. package/dist/src/dashboard/html-template.js.map +1 -0
  12. package/dist/src/dashboard/index.d.ts +4 -0
  13. package/dist/src/dashboard/index.js +15 -0
  14. package/dist/src/dashboard/index.js.map +1 -0
  15. package/dist/src/dashboard/metrics.d.ts +79 -0
  16. package/dist/src/dashboard/metrics.js +194 -0
  17. package/dist/src/dashboard/metrics.js.map +1 -0
  18. package/dist/src/entities/core/schema-readonly.d.ts +4 -4
  19. package/dist/src/entities/milestones/schema-readonly.d.ts +1 -1
  20. package/dist/src/entities/mrs/schema-readonly.d.ts +1 -1
  21. package/dist/src/entities/mrs/schema.d.ts +1 -1
  22. package/dist/src/entities/pipelines/schema-readonly.d.ts +4 -4
  23. package/dist/src/entities/search/schema-readonly.d.ts +7 -7
  24. package/dist/src/entities/workitems/schema-readonly.d.ts +8 -8
  25. package/dist/src/entities/workitems/schema.d.ts +4 -4
  26. package/dist/src/oauth/endpoints/index.d.ts +1 -1
  27. package/dist/src/oauth/endpoints/index.js +1 -2
  28. package/dist/src/oauth/endpoints/index.js.map +1 -1
  29. package/dist/src/oauth/endpoints/metadata.d.ts +0 -1
  30. package/dist/src/oauth/endpoints/metadata.js +0 -76
  31. package/dist/src/oauth/endpoints/metadata.js.map +1 -1
  32. package/dist/src/oauth/index.d.ts +1 -1
  33. package/dist/src/oauth/index.js +2 -3
  34. package/dist/src/oauth/index.js.map +1 -1
  35. package/dist/src/server.js +8 -1
  36. package/dist/src/server.js.map +1 -1
  37. package/dist/structured-world-gitlab-mcp-6.57.0.tgz +0 -0
  38. package/dist/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +1 -1
  40. package/dist/structured-world-gitlab-mcp-6.55.1.tgz +0 -0
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { InstanceSummary } from "../services/InstanceRegistry.js";
3
+ import { ConnectionStatus } from "../config/instances-schema.js";
4
+ export declare const InstanceStatusSchema: z.ZodObject<{
5
+ url: z.ZodString;
6
+ label: z.ZodNullable<z.ZodString>;
7
+ status: z.ZodEnum<{
8
+ healthy: "healthy";
9
+ degraded: "degraded";
10
+ offline: "offline";
11
+ }>;
12
+ version: z.ZodNullable<z.ZodString>;
13
+ tier: z.ZodNullable<z.ZodString>;
14
+ introspected: z.ZodBoolean;
15
+ rateLimit: z.ZodObject<{
16
+ activeRequests: z.ZodNumber;
17
+ maxConcurrent: z.ZodNumber;
18
+ queuedRequests: z.ZodNumber;
19
+ queueSize: z.ZodNumber;
20
+ totalRequests: z.ZodNumber;
21
+ rejectedRequests: z.ZodNumber;
22
+ }, z.core.$strip>;
23
+ latency: z.ZodObject<{
24
+ avgMs: z.ZodNumber;
25
+ }, z.core.$strip>;
26
+ lastHealthCheck: z.ZodNullable<z.ZodString>;
27
+ }, z.core.$strip>;
28
+ export type InstanceStatus = z.infer<typeof InstanceStatusSchema>;
29
+ export declare const DashboardMetricsSchema: z.ZodObject<{
30
+ server: z.ZodObject<{
31
+ version: z.ZodString;
32
+ uptime: z.ZodNumber;
33
+ mode: z.ZodEnum<{
34
+ oauth: "oauth";
35
+ none: "none";
36
+ token: "token";
37
+ }>;
38
+ readOnly: z.ZodBoolean;
39
+ toolsEnabled: z.ZodNumber;
40
+ toolsTotal: z.ZodNumber;
41
+ }, z.core.$strip>;
42
+ instances: z.ZodArray<z.ZodObject<{
43
+ url: z.ZodString;
44
+ label: z.ZodNullable<z.ZodString>;
45
+ status: z.ZodEnum<{
46
+ healthy: "healthy";
47
+ degraded: "degraded";
48
+ offline: "offline";
49
+ }>;
50
+ version: z.ZodNullable<z.ZodString>;
51
+ tier: z.ZodNullable<z.ZodString>;
52
+ introspected: z.ZodBoolean;
53
+ rateLimit: z.ZodObject<{
54
+ activeRequests: z.ZodNumber;
55
+ maxConcurrent: z.ZodNumber;
56
+ queuedRequests: z.ZodNumber;
57
+ queueSize: z.ZodNumber;
58
+ totalRequests: z.ZodNumber;
59
+ rejectedRequests: z.ZodNumber;
60
+ }, z.core.$strip>;
61
+ latency: z.ZodObject<{
62
+ avgMs: z.ZodNumber;
63
+ }, z.core.$strip>;
64
+ lastHealthCheck: z.ZodNullable<z.ZodString>;
65
+ }, z.core.$strip>>;
66
+ sessions: z.ZodObject<{
67
+ total: z.ZodNumber;
68
+ byInstance: z.ZodRecord<z.ZodString, z.ZodNumber>;
69
+ }, z.core.$strip>;
70
+ config: z.ZodObject<{
71
+ source: z.ZodString;
72
+ sourceDetails: z.ZodString;
73
+ oauthEnabled: z.ZodBoolean;
74
+ }, z.core.$strip>;
75
+ }, z.core.$strip>;
76
+ export type DashboardMetrics = z.infer<typeof DashboardMetricsSchema>;
77
+ export declare function determineInstanceStatus(instance: InstanceSummary): ConnectionStatus;
78
+ export declare function collectMetrics(): DashboardMetrics;
79
+ export declare function formatUptime(seconds: number): string;
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DashboardMetricsSchema = exports.InstanceStatusSchema = void 0;
4
+ exports.determineInstanceStatus = determineInstanceStatus;
5
+ exports.collectMetrics = collectMetrics;
6
+ exports.formatUptime = formatUptime;
7
+ const zod_1 = require("zod");
8
+ const InstanceRegistry_js_1 = require("../services/InstanceRegistry.js");
9
+ const session_manager_js_1 = require("../session-manager.js");
10
+ const config_js_1 = require("../config.js");
11
+ const index_js_1 = require("../oauth/index.js");
12
+ const registry_manager_js_1 = require("../registry-manager.js");
13
+ const serverStartTime = Date.now();
14
+ exports.InstanceStatusSchema = zod_1.z.object({
15
+ url: zod_1.z.string().describe("GitLab instance URL"),
16
+ label: zod_1.z.string().nullable().describe("Human-readable label for UI display"),
17
+ status: zod_1.z.enum(["healthy", "degraded", "offline"]).describe("Instance health status"),
18
+ version: zod_1.z.string().nullable().describe("GitLab version"),
19
+ tier: zod_1.z.string().nullable().describe("Instance tier (free/premium/ultimate)"),
20
+ introspected: zod_1.z.boolean().describe("Whether schema introspection was successful"),
21
+ rateLimit: zod_1.z
22
+ .object({
23
+ activeRequests: zod_1.z.number().describe("Current number of active requests"),
24
+ maxConcurrent: zod_1.z.number().describe("Maximum concurrent requests allowed"),
25
+ queuedRequests: zod_1.z.number().describe("Current number of queued requests"),
26
+ queueSize: zod_1.z.number().describe("Maximum queue size"),
27
+ totalRequests: zod_1.z.number().describe("Total requests processed"),
28
+ rejectedRequests: zod_1.z.number().describe("Total requests rejected due to full queue"),
29
+ })
30
+ .describe("Rate limit metrics for this instance"),
31
+ latency: zod_1.z
32
+ .object({
33
+ avgMs: zod_1.z.number().describe("Average queue wait time in milliseconds"),
34
+ })
35
+ .describe("Latency metrics"),
36
+ lastHealthCheck: zod_1.z.string().nullable().describe("ISO timestamp of last health check"),
37
+ });
38
+ exports.DashboardMetricsSchema = zod_1.z.object({
39
+ server: zod_1.z
40
+ .object({
41
+ version: zod_1.z.string().describe("Server version"),
42
+ uptime: zod_1.z.number().describe("Server uptime in seconds"),
43
+ mode: zod_1.z.enum(["oauth", "token", "none"]).describe("Authentication mode"),
44
+ readOnly: zod_1.z.boolean().describe("Whether server is in read-only mode"),
45
+ toolsEnabled: zod_1.z.number().describe("Number of enabled tools"),
46
+ toolsTotal: zod_1.z.number().describe("Total number of available tools"),
47
+ })
48
+ .describe("Server information"),
49
+ instances: zod_1.z.array(exports.InstanceStatusSchema).describe("Registered GitLab instances"),
50
+ sessions: zod_1.z
51
+ .object({
52
+ total: zod_1.z.number().describe("Total active sessions"),
53
+ byInstance: zod_1.z.record(zod_1.z.string(), zod_1.z.number()).describe("Sessions per instance URL"),
54
+ })
55
+ .describe("Session statistics (anonymized)"),
56
+ config: zod_1.z
57
+ .object({
58
+ source: zod_1.z.string().describe("Configuration source type"),
59
+ sourceDetails: zod_1.z.string().describe("Configuration source details"),
60
+ oauthEnabled: zod_1.z.boolean().describe("Whether OAuth is enabled"),
61
+ })
62
+ .describe("Configuration information"),
63
+ });
64
+ function determineInstanceStatus(instance) {
65
+ const now = Date.now();
66
+ const fiveMinutesAgo = now - 5 * 60 * 1000;
67
+ if (instance.lastHealthCheck === null) {
68
+ return "healthy";
69
+ }
70
+ const lastCheckMs = instance.lastHealthCheck.getTime();
71
+ if (lastCheckMs < fiveMinutesAgo) {
72
+ return "offline";
73
+ }
74
+ const metrics = instance.rateLimit;
75
+ if (metrics.avgQueueWaitMs > 2000) {
76
+ return "degraded";
77
+ }
78
+ if (metrics.queuedRequests > metrics.queueSize * 0.5) {
79
+ return "degraded";
80
+ }
81
+ if (metrics.requestsTotal > 0 && metrics.requestsRejected / metrics.requestsTotal > 0.1) {
82
+ return "degraded";
83
+ }
84
+ return "healthy";
85
+ }
86
+ function toInstanceStatus(summary) {
87
+ const status = determineInstanceStatus(summary);
88
+ return {
89
+ url: summary.url,
90
+ label: summary.label ?? null,
91
+ status,
92
+ version: summary.introspection.version,
93
+ tier: summary.introspection.tier,
94
+ introspected: summary.introspection.version !== null && !summary.introspection.isExpired,
95
+ rateLimit: {
96
+ activeRequests: summary.rateLimit.activeRequests,
97
+ maxConcurrent: summary.rateLimit.maxConcurrent,
98
+ queuedRequests: summary.rateLimit.queuedRequests,
99
+ queueSize: summary.rateLimit.queueSize,
100
+ totalRequests: summary.rateLimit.requestsTotal,
101
+ rejectedRequests: summary.rateLimit.requestsRejected,
102
+ },
103
+ latency: {
104
+ avgMs: summary.rateLimit.avgQueueWaitMs,
105
+ },
106
+ lastHealthCheck: summary.lastHealthCheck?.toISOString() ?? null,
107
+ };
108
+ }
109
+ function getAuthMode() {
110
+ if ((0, index_js_1.isOAuthEnabled)()) {
111
+ return "oauth";
112
+ }
113
+ if (config_js_1.GITLAB_TOKEN) {
114
+ return "token";
115
+ }
116
+ return "none";
117
+ }
118
+ function getToolCounts() {
119
+ try {
120
+ const registry = registry_manager_js_1.RegistryManager.getInstance();
121
+ const tools = registry.getAllToolDefinitions();
122
+ return {
123
+ enabled: tools.length,
124
+ total: tools.length,
125
+ };
126
+ }
127
+ catch {
128
+ return { enabled: 0, total: 0 };
129
+ }
130
+ }
131
+ function collectMetrics() {
132
+ const instanceRegistry = InstanceRegistry_js_1.InstanceRegistry.getInstance();
133
+ const sessionManager = (0, session_manager_js_1.getSessionManager)();
134
+ const instanceSummaries = instanceRegistry.list();
135
+ const instances = instanceSummaries.map(toInstanceStatus);
136
+ if (instances.length === 0 && config_js_1.GITLAB_BASE_URL) {
137
+ instances.push({
138
+ url: config_js_1.GITLAB_BASE_URL,
139
+ label: null,
140
+ status: "healthy",
141
+ version: null,
142
+ tier: null,
143
+ introspected: false,
144
+ rateLimit: {
145
+ activeRequests: 0,
146
+ maxConcurrent: 100,
147
+ queuedRequests: 0,
148
+ queueSize: 500,
149
+ totalRequests: 0,
150
+ rejectedRequests: 0,
151
+ },
152
+ latency: { avgMs: 0 },
153
+ lastHealthCheck: null,
154
+ });
155
+ }
156
+ const configSource = instanceRegistry.getConfigSource();
157
+ const toolCounts = getToolCounts();
158
+ const uptimeSeconds = Math.floor((Date.now() - serverStartTime) / 1000);
159
+ const sessionsByInstance = {};
160
+ return {
161
+ server: {
162
+ version: config_js_1.packageVersion,
163
+ uptime: uptimeSeconds,
164
+ mode: getAuthMode(),
165
+ readOnly: config_js_1.GITLAB_READ_ONLY_MODE,
166
+ toolsEnabled: toolCounts.enabled,
167
+ toolsTotal: toolCounts.total,
168
+ },
169
+ instances,
170
+ sessions: {
171
+ total: sessionManager.activeSessionCount,
172
+ byInstance: sessionsByInstance,
173
+ },
174
+ config: {
175
+ source: configSource.source,
176
+ sourceDetails: configSource.details,
177
+ oauthEnabled: (0, index_js_1.isOAuthEnabled)(),
178
+ },
179
+ };
180
+ }
181
+ function formatUptime(seconds) {
182
+ const days = Math.floor(seconds / 86400);
183
+ const hours = Math.floor((seconds % 86400) / 3600);
184
+ const minutes = Math.floor((seconds % 3600) / 60);
185
+ const parts = [];
186
+ if (days > 0)
187
+ parts.push(`${days}d`);
188
+ if (hours > 0)
189
+ parts.push(`${hours}h`);
190
+ if (minutes > 0 || parts.length === 0)
191
+ parts.push(`${minutes}m`);
192
+ return parts.join(" ");
193
+ }
194
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/dashboard/metrics.ts"],"names":[],"mappings":"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"}
@@ -141,12 +141,12 @@ export declare const BrowseEventsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
141
141
  action: z.ZodLiteral<"user">;
142
142
  target_type: z.ZodOptional<z.ZodEnum<{
143
143
  project: "project";
144
- issue: "issue";
145
144
  milestone: "milestone";
146
145
  merge_request: "merge_request";
146
+ issue: "issue";
147
+ user: "user";
147
148
  note: "note";
148
149
  snippet: "snippet";
149
- user: "user";
150
150
  }>>;
151
151
  event_action: z.ZodOptional<z.ZodEnum<{
152
152
  expired: "expired";
@@ -174,12 +174,12 @@ export declare const BrowseEventsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
174
174
  project_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
175
175
  target_type: z.ZodOptional<z.ZodEnum<{
176
176
  project: "project";
177
- issue: "issue";
178
177
  milestone: "milestone";
179
178
  merge_request: "merge_request";
179
+ issue: "issue";
180
+ user: "user";
180
181
  note: "note";
181
182
  snippet: "snippet";
182
- user: "user";
183
183
  }>>;
184
184
  event_action: z.ZodOptional<z.ZodEnum<{
185
185
  expired: "expired";
@@ -22,8 +22,8 @@ export declare const BrowseMilestonesSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
22
22
  namespace: z.ZodString;
23
23
  iids: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
24
  state: z.ZodOptional<z.ZodEnum<{
25
- closed: "closed";
26
25
  active: "active";
26
+ closed: "closed";
27
27
  }>>;
28
28
  title: z.ZodOptional<z.ZodString>;
29
29
  search: z.ZodOptional<z.ZodString>;
@@ -18,10 +18,10 @@ export declare const BrowseMergeRequestsSchema: z.ZodDiscriminatedUnion<[z.ZodOb
18
18
  locked: "locked";
19
19
  }>>;
20
20
  order_by: z.ZodOptional<z.ZodEnum<{
21
+ priority: "priority";
21
22
  title: "title";
22
23
  created_at: "created_at";
23
24
  updated_at: "updated_at";
24
- priority: "priority";
25
25
  }>>;
26
26
  sort: z.ZodOptional<z.ZodEnum<{
27
27
  asc: "asc";
@@ -104,8 +104,8 @@ export declare const ManageMrDiscussionSchema: z.ZodDiscriminatedUnion<[z.ZodObj
104
104
  action: z.ZodLiteral<"comment">;
105
105
  project_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
106
106
  noteable_type: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
107
- issue: "issue";
108
107
  merge_request: "merge_request";
108
+ issue: "issue";
109
109
  }>>;
110
110
  noteable_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
111
111
  body: z.ZodString;
@@ -140,22 +140,22 @@ export declare const BrowsePipelinesSchema: z.ZodDiscriminatedUnion<[z.ZodObject
140
140
  success: "success";
141
141
  pending: "pending";
142
142
  failed: "failed";
143
+ manual: "manual";
143
144
  created: "created";
144
145
  running: "running";
145
146
  waiting_for_resource: "waiting_for_resource";
146
147
  preparing: "preparing";
147
148
  canceled: "canceled";
148
149
  skipped: "skipped";
149
- manual: "manual";
150
150
  scheduled: "scheduled";
151
151
  }>>;
152
152
  source: z.ZodOptional<z.ZodEnum<{
153
153
  push: "push";
154
+ api: "api";
154
155
  external: "external";
155
156
  web: "web";
156
157
  trigger: "trigger";
157
158
  schedule: "schedule";
158
- api: "api";
159
159
  chat: "chat";
160
160
  webide: "webide";
161
161
  merge_request_event: "merge_request_event";
@@ -196,11 +196,11 @@ export declare const BrowsePipelinesSchema: z.ZodDiscriminatedUnion<[z.ZodObject
196
196
  success: "success";
197
197
  pending: "pending";
198
198
  failed: "failed";
199
+ manual: "manual";
199
200
  created: "created";
200
201
  running: "running";
201
202
  canceled: "canceled";
202
203
  skipped: "skipped";
203
- manual: "manual";
204
204
  }>>>;
205
205
  include_retried: z.ZodOptional<z.ZodBoolean>;
206
206
  }, z.core.$strip>, z.ZodObject<{
@@ -213,13 +213,13 @@ export declare const BrowsePipelinesSchema: z.ZodDiscriminatedUnion<[z.ZodObject
213
213
  success: "success";
214
214
  pending: "pending";
215
215
  failed: "failed";
216
+ manual: "manual";
216
217
  created: "created";
217
218
  running: "running";
218
219
  waiting_for_resource: "waiting_for_resource";
219
220
  preparing: "preparing";
220
221
  canceled: "canceled";
221
222
  skipped: "skipped";
222
- manual: "manual";
223
223
  }>>>;
224
224
  include_retried: z.ZodOptional<z.ZodBoolean>;
225
225
  }, z.core.$strip>, z.ZodObject<{
@@ -3,9 +3,9 @@ export declare const SearchScopeSchema: z.ZodEnum<{
3
3
  milestones: "milestones";
4
4
  projects: "projects";
5
5
  groups: "groups";
6
+ issues: "issues";
6
7
  commits: "commits";
7
8
  users: "users";
8
- issues: "issues";
9
9
  merge_requests: "merge_requests";
10
10
  snippet_titles: "snippet_titles";
11
11
  blobs: "blobs";
@@ -18,9 +18,9 @@ declare const GlobalSearchSchema: z.ZodObject<{
18
18
  milestones: "milestones";
19
19
  projects: "projects";
20
20
  groups: "groups";
21
+ issues: "issues";
21
22
  commits: "commits";
22
23
  users: "users";
23
- issues: "issues";
24
24
  merge_requests: "merge_requests";
25
25
  snippet_titles: "snippet_titles";
26
26
  blobs: "blobs";
@@ -53,9 +53,9 @@ declare const ProjectSearchSchema: z.ZodObject<{
53
53
  milestones: "milestones";
54
54
  projects: "projects";
55
55
  groups: "groups";
56
+ issues: "issues";
56
57
  commits: "commits";
57
58
  users: "users";
58
- issues: "issues";
59
59
  merge_requests: "merge_requests";
60
60
  snippet_titles: "snippet_titles";
61
61
  blobs: "blobs";
@@ -89,9 +89,9 @@ declare const GroupSearchSchema: z.ZodObject<{
89
89
  milestones: "milestones";
90
90
  projects: "projects";
91
91
  groups: "groups";
92
+ issues: "issues";
92
93
  commits: "commits";
93
94
  users: "users";
94
- issues: "issues";
95
95
  merge_requests: "merge_requests";
96
96
  snippet_titles: "snippet_titles";
97
97
  blobs: "blobs";
@@ -123,9 +123,9 @@ export declare const BrowseSearchSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
123
123
  milestones: "milestones";
124
124
  projects: "projects";
125
125
  groups: "groups";
126
+ issues: "issues";
126
127
  commits: "commits";
127
128
  users: "users";
128
- issues: "issues";
129
129
  merge_requests: "merge_requests";
130
130
  snippet_titles: "snippet_titles";
131
131
  blobs: "blobs";
@@ -157,9 +157,9 @@ export declare const BrowseSearchSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
157
157
  milestones: "milestones";
158
158
  projects: "projects";
159
159
  groups: "groups";
160
+ issues: "issues";
160
161
  commits: "commits";
161
162
  users: "users";
162
- issues: "issues";
163
163
  merge_requests: "merge_requests";
164
164
  snippet_titles: "snippet_titles";
165
165
  blobs: "blobs";
@@ -192,9 +192,9 @@ export declare const BrowseSearchSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
192
192
  milestones: "milestones";
193
193
  projects: "projects";
194
194
  groups: "groups";
195
+ issues: "issues";
195
196
  commits: "commits";
196
197
  users: "users";
197
- issues: "issues";
198
198
  merge_requests: "merge_requests";
199
199
  snippet_titles: "snippet_titles";
200
200
  blobs: "blobs";
@@ -1,14 +1,14 @@
1
1
  import { z } from "zod";
2
2
  export declare const WorkItemIdSchema: z.ZodString;
3
3
  export declare const WorkItemTypeEnumSchema: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
4
+ OBJECTIVE: "OBJECTIVE";
5
+ KEY_RESULT: "KEY_RESULT";
6
+ REQUIREMENT: "REQUIREMENT";
7
+ EPIC: "EPIC";
4
8
  ISSUE: "ISSUE";
5
9
  INCIDENT: "INCIDENT";
6
10
  TEST_CASE: "TEST_CASE";
7
11
  TASK: "TASK";
8
- EPIC: "EPIC";
9
- REQUIREMENT: "REQUIREMENT";
10
- OBJECTIVE: "OBJECTIVE";
11
- KEY_RESULT: "KEY_RESULT";
12
12
  }>>;
13
13
  export declare const WorkItemStateSchema: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
14
14
  OPEN: "OPEN";
@@ -22,14 +22,14 @@ export declare const BrowseWorkItemsSchema: z.ZodDiscriminatedUnion<[z.ZodObject
22
22
  action: z.ZodLiteral<"list">;
23
23
  namespace: z.ZodString;
24
24
  types: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
25
+ OBJECTIVE: "OBJECTIVE";
26
+ KEY_RESULT: "KEY_RESULT";
27
+ REQUIREMENT: "REQUIREMENT";
28
+ EPIC: "EPIC";
25
29
  ISSUE: "ISSUE";
26
30
  INCIDENT: "INCIDENT";
27
31
  TEST_CASE: "TEST_CASE";
28
32
  TASK: "TASK";
29
- EPIC: "EPIC";
30
- REQUIREMENT: "REQUIREMENT";
31
- OBJECTIVE: "OBJECTIVE";
32
- KEY_RESULT: "KEY_RESULT";
33
33
  }>>>>;
34
34
  state: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
35
35
  OPEN: "OPEN";
@@ -3,14 +3,14 @@ export declare const ManageWorkItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
3
3
  action: z.ZodLiteral<"create">;
4
4
  namespace: z.ZodString;
5
5
  workItemType: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
6
+ OBJECTIVE: "OBJECTIVE";
7
+ KEY_RESULT: "KEY_RESULT";
8
+ REQUIREMENT: "REQUIREMENT";
9
+ EPIC: "EPIC";
6
10
  ISSUE: "ISSUE";
7
11
  INCIDENT: "INCIDENT";
8
12
  TEST_CASE: "TEST_CASE";
9
13
  TASK: "TASK";
10
- EPIC: "EPIC";
11
- REQUIREMENT: "REQUIREMENT";
12
- OBJECTIVE: "OBJECTIVE";
13
- KEY_RESULT: "KEY_RESULT";
14
14
  }>>;
15
15
  title: z.ZodString;
16
16
  description: z.ZodOptional<z.ZodString>;
@@ -1,4 +1,4 @@
1
- export { metadataHandler, healthHandler, protectedResourceHandler, getBaseUrl } from "./metadata";
1
+ export { metadataHandler, protectedResourceHandler, getBaseUrl } from "./metadata";
2
2
  export { authorizeHandler, pollHandler } from "./authorize";
3
3
  export { callbackHandler } from "./callback";
4
4
  export { tokenHandler } from "./token";
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidRedirectUri = exports.getRegisteredClient = exports.registerHandler = exports.tokenHandler = exports.callbackHandler = exports.pollHandler = exports.authorizeHandler = exports.getBaseUrl = exports.protectedResourceHandler = exports.healthHandler = exports.metadataHandler = void 0;
3
+ exports.isValidRedirectUri = exports.getRegisteredClient = exports.registerHandler = exports.tokenHandler = exports.callbackHandler = exports.pollHandler = exports.authorizeHandler = exports.getBaseUrl = exports.protectedResourceHandler = exports.metadataHandler = void 0;
4
4
  var metadata_1 = require("./metadata");
5
5
  Object.defineProperty(exports, "metadataHandler", { enumerable: true, get: function () { return metadata_1.metadataHandler; } });
6
- Object.defineProperty(exports, "healthHandler", { enumerable: true, get: function () { return metadata_1.healthHandler; } });
7
6
  Object.defineProperty(exports, "protectedResourceHandler", { enumerable: true, get: function () { return metadata_1.protectedResourceHandler; } });
8
7
  Object.defineProperty(exports, "getBaseUrl", { enumerable: true, get: function () { return metadata_1.getBaseUrl; } });
9
8
  var authorize_1 = require("./authorize");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/oauth/endpoints/index.ts"],"names":[],"mappings":";;;AAMA,uCAAkG;AAAzF,2GAAA,eAAe,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC7E,yCAA4D;AAAnD,6GAAA,gBAAgB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,uCAAsF;AAA7E,2GAAA,eAAe,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,8GAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/oauth/endpoints/index.ts"],"names":[],"mappings":";;;AAMA,uCAAmF;AAA1E,2GAAA,eAAe,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC9D,yCAA4D;AAAnD,6GAAA,gBAAgB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,uCAAsF;AAA7E,2GAAA,eAAe,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,8GAAA,kBAAkB,OAAA"}
@@ -3,4 +3,3 @@ export declare const MCP_PROTOCOL_VERSION = "2025-03-26";
3
3
  export declare function getBaseUrl(req: Request): string;
4
4
  export declare function metadataHandler(req: Request, res: Response): void;
5
5
  export declare function protectedResourceHandler(req: Request, res: Response): void;
6
- export declare function healthHandler(req: Request, res: Response): Promise<void>;
@@ -1,43 +1,9 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.MCP_PROTOCOL_VERSION = void 0;
37
4
  exports.getBaseUrl = getBaseUrl;
38
5
  exports.metadataHandler = metadataHandler;
39
6
  exports.protectedResourceHandler = protectedResourceHandler;
40
- exports.healthHandler = healthHandler;
41
7
  const config_1 = require("../../config");
42
8
  exports.MCP_PROTOCOL_VERSION = "2025-03-26";
43
9
  function getBaseUrl(req) {
@@ -73,46 +39,4 @@ function protectedResourceHandler(req, res) {
73
39
  };
74
40
  res.json(metadata);
75
41
  }
76
- async function healthHandler(req, res) {
77
- const { isOAuthEnabled, isAuthenticationConfigured } = await Promise.resolve().then(() => __importStar(require("../config")));
78
- let authMode;
79
- if (isOAuthEnabled()) {
80
- authMode = "oauth";
81
- }
82
- else if (isAuthenticationConfigured()) {
83
- authMode = "token";
84
- }
85
- else {
86
- authMode = "none";
87
- }
88
- let toolCount = 0;
89
- try {
90
- const { RegistryManager } = await Promise.resolve().then(() => __importStar(require("../../registry-manager")));
91
- toolCount = RegistryManager.getInstance().getAllToolDefinitions().length;
92
- }
93
- catch {
94
- try {
95
- const fs = await Promise.resolve().then(() => __importStar(require("fs")));
96
- const path = await Promise.resolve().then(() => __importStar(require("path")));
97
- const pkgPath = path.join(__dirname, "../../../package.json");
98
- const pkgContent = fs.readFileSync(pkgPath, "utf-8");
99
- const pkg = JSON.parse(pkgContent);
100
- toolCount = pkg.mcp?.tools?.length ?? 0;
101
- }
102
- catch {
103
- toolCount = 0;
104
- }
105
- }
106
- res.json({
107
- status: "ok",
108
- timestamp: new Date().toISOString(),
109
- mcp: {
110
- protocol: exports.MCP_PROTOCOL_VERSION,
111
- transports: ["stdio", "sse", "streamable-http"],
112
- toolCount,
113
- authenticated: authMode !== "none",
114
- authMode,
115
- },
116
- });
117
- }
118
42
  //# sourceMappingURL=metadata.js.map