@qualitas-id/mcp 1.0.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/LICENSE +21 -0
- package/README.md +262 -0
- package/dist/constants.d.ts +18 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/common.d.ts +20 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +10 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/flow.d.ts +358 -0
- package/dist/schemas/flow.d.ts.map +1 -0
- package/dist/schemas/flow.js +72 -0
- package/dist/schemas/flow.js.map +1 -0
- package/dist/schemas/project.d.ts +70 -0
- package/dist/schemas/project.d.ts.map +1 -0
- package/dist/schemas/project.js +26 -0
- package/dist/schemas/project.js.map +1 -0
- package/dist/schemas/run.d.ts +54 -0
- package/dist/schemas/run.d.ts.map +1 -0
- package/dist/schemas/run.js +20 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/schemas/variable.d.ts +91 -0
- package/dist/schemas/variable.d.ts.map +1 -0
- package/dist/schemas/variable.js +30 -0
- package/dist/schemas/variable.js.map +1 -0
- package/dist/services/api-client.d.ts +101 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +184 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/services/flow-generator.d.ts +31 -0
- package/dist/services/flow-generator.d.ts.map +1 -0
- package/dist/services/flow-generator.js +638 -0
- package/dist/services/flow-generator.js.map +1 -0
- package/dist/shared-types.d.ts +579 -0
- package/dist/shared-types.d.ts.map +1 -0
- package/dist/shared-types.js +12 -0
- package/dist/shared-types.js.map +1 -0
- package/dist/tools/flows.d.ts +13 -0
- package/dist/tools/flows.d.ts.map +1 -0
- package/dist/tools/flows.js +458 -0
- package/dist/tools/flows.js.map +1 -0
- package/dist/tools/projects.d.ts +13 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +381 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/runs.d.ts +9 -0
- package/dist/tools/runs.d.ts.map +1 -0
- package/dist/tools/runs.js +342 -0
- package/dist/tools/runs.js.map +1 -0
- package/dist/tools/utils.d.ts +12 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +144 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/variables.d.ts +9 -0
- package/dist/tools/variables.d.ts.map +1 -0
- package/dist/tools/variables.js +316 -0
- package/dist/tools/variables.js.map +1 -0
- package/dist/types.d.ts +117 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/flow-layout.d.ts +34 -0
- package/dist/utils/flow-layout.d.ts.map +1 -0
- package/dist/utils/flow-layout.js +109 -0
- package/dist/utils/flow-layout.js.map +1 -0
- package/dist/utils/flow-validation.d.ts +74 -0
- package/dist/utils/flow-validation.d.ts.map +1 -0
- package/dist/utils/flow-validation.js +386 -0
- package/dist/utils/flow-validation.js.map +1 -0
- package/dist/utils/ocr.d.ts +25 -0
- package/dist/utils/ocr.d.ts.map +1 -0
- package/dist/utils/ocr.js +88 -0
- package/dist/utils/ocr.js.map +1 -0
- package/package.json +65 -0
- package/skills/qualitas.md +253 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qualitas MCP Server - Project Tools
|
|
3
|
+
*
|
|
4
|
+
* Registers all project-related MCP tools:
|
|
5
|
+
* - qualitas_list_projects
|
|
6
|
+
* - qualitas_get_project
|
|
7
|
+
* - qualitas_create_project
|
|
8
|
+
* - qualitas_update_project
|
|
9
|
+
*/
|
|
10
|
+
import { handleApiError } from "../services/api-client.js";
|
|
11
|
+
import { ListProjectsSchema, GetProjectSchema, CreateProjectSchema, UpdateProjectSchema, } from "../schemas/project.js";
|
|
12
|
+
import { APP_URL } from "../constants.js";
|
|
13
|
+
// ===========================================
|
|
14
|
+
// Formatting Helpers
|
|
15
|
+
// ===========================================
|
|
16
|
+
function formatDate(iso) {
|
|
17
|
+
if (!iso)
|
|
18
|
+
return "—";
|
|
19
|
+
return new Date(iso).toLocaleString("en-US", {
|
|
20
|
+
year: "numeric",
|
|
21
|
+
month: "short",
|
|
22
|
+
day: "numeric",
|
|
23
|
+
hour: "2-digit",
|
|
24
|
+
minute: "2-digit",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function statusBadge(status) {
|
|
28
|
+
switch (status) {
|
|
29
|
+
case "active":
|
|
30
|
+
case "healthy":
|
|
31
|
+
return "🟢 " + status;
|
|
32
|
+
case "failing":
|
|
33
|
+
return "🔴 " + status;
|
|
34
|
+
case "archived":
|
|
35
|
+
return "⚪ " + status;
|
|
36
|
+
default:
|
|
37
|
+
return status;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function formatProjectMarkdown(project) {
|
|
41
|
+
const lines = [];
|
|
42
|
+
lines.push(`## ${project.name}`);
|
|
43
|
+
lines.push("");
|
|
44
|
+
if (project.description) {
|
|
45
|
+
lines.push(`> ${project.description}`);
|
|
46
|
+
lines.push("");
|
|
47
|
+
}
|
|
48
|
+
lines.push(`- **ID:** \`${project.id}\``);
|
|
49
|
+
lines.push(`- **Status:** ${statusBadge(project.status)}`);
|
|
50
|
+
if (project.base_url) {
|
|
51
|
+
lines.push(`- **Base URL:** ${project.base_url}`);
|
|
52
|
+
}
|
|
53
|
+
if (project.icon) {
|
|
54
|
+
lines.push(`- **Icon:** ${project.icon}${project.icon_color ? ` (${project.icon_color})` : ""}`);
|
|
55
|
+
}
|
|
56
|
+
// Stats section
|
|
57
|
+
if (project.flows_count !== undefined ||
|
|
58
|
+
project.passing_count !== undefined ||
|
|
59
|
+
project.failing_count !== undefined) {
|
|
60
|
+
lines.push("");
|
|
61
|
+
lines.push("### Stats");
|
|
62
|
+
lines.push("");
|
|
63
|
+
lines.push(`| Metric | Count |`);
|
|
64
|
+
lines.push(`|--------|-------|`);
|
|
65
|
+
lines.push(`| Flows | ${project.flows_count ?? 0} |`);
|
|
66
|
+
lines.push(`| Passing | ${project.passing_count ?? 0} |`);
|
|
67
|
+
lines.push(`| Failing | ${project.failing_count ?? 0} |`);
|
|
68
|
+
}
|
|
69
|
+
lines.push("");
|
|
70
|
+
lines.push(`- **Created:** ${formatDate(project.created_at)}`);
|
|
71
|
+
lines.push(`- **Updated:** ${formatDate(project.updated_at)}`);
|
|
72
|
+
if (project.last_run_at) {
|
|
73
|
+
lines.push(`- **Last Run:** ${formatDate(project.last_run_at)}${project.last_run_by ? ` by ${project.last_run_by}` : ""}`);
|
|
74
|
+
}
|
|
75
|
+
return lines.join("\n");
|
|
76
|
+
}
|
|
77
|
+
function formatProjectRow(project) {
|
|
78
|
+
const passing = project.passing_count ?? 0;
|
|
79
|
+
const failing = project.failing_count ?? 0;
|
|
80
|
+
return `| \`${project.id.slice(0, 8)}\` | ${project.name} | ${statusBadge(project.status)} | ${project.flows_count ?? 0} | ${passing} ✅ | ${failing} ❌ | ${formatDate(project.last_run_at)} |`;
|
|
81
|
+
}
|
|
82
|
+
function buildProjectLink(projectId) {
|
|
83
|
+
return `${APP_URL}/projects/${projectId}`;
|
|
84
|
+
}
|
|
85
|
+
// ===========================================
|
|
86
|
+
// Tool Registration
|
|
87
|
+
// ===========================================
|
|
88
|
+
export function registerProjectTools(server, apiClient) {
|
|
89
|
+
// -----------------------------------------
|
|
90
|
+
// 1. qualitas_list_projects
|
|
91
|
+
// -----------------------------------------
|
|
92
|
+
server.registerTool("list_projects", {
|
|
93
|
+
title: "List Projects",
|
|
94
|
+
description: [
|
|
95
|
+
"List all Qualitas projects with optional filtering, sorting, and pagination.",
|
|
96
|
+
"",
|
|
97
|
+
"**Arguments:**",
|
|
98
|
+
"- `search` (string, optional): Filter projects by name (case-insensitive partial match).",
|
|
99
|
+
"- `status` (string, optional): Filter by status — one of `active`, `healthy`, `failing`, `archived`.",
|
|
100
|
+
"- `sort` (string, optional): Sort order. Options: `-updated_at` (default), `name`, `-created_at`.",
|
|
101
|
+
"- `limit` (number, optional): Max results per page (1–100, default 20).",
|
|
102
|
+
"- `offset` (number, optional): Number of results to skip (default 0).",
|
|
103
|
+
"- `response_format` (string, optional): `markdown` (default) or `json`.",
|
|
104
|
+
"",
|
|
105
|
+
"**Returns:**",
|
|
106
|
+
"- Markdown format: A table listing each project with ID, name, status, flow count, pass/fail counts, and last run time. Includes pagination summary.",
|
|
107
|
+
"- JSON format: Raw array of project objects with pagination metadata.",
|
|
108
|
+
"",
|
|
109
|
+
"**Examples:**",
|
|
110
|
+
"```",
|
|
111
|
+
'// List all projects',
|
|
112
|
+
'qualitas_list_projects({})',
|
|
113
|
+
'',
|
|
114
|
+
'// Search with filter',
|
|
115
|
+
'qualitas_list_projects({ search: "shop", status: "active", limit: 10 })',
|
|
116
|
+
'```',
|
|
117
|
+
"",
|
|
118
|
+
"**Error Handling:**",
|
|
119
|
+
"- 401: Invalid or expired API key.",
|
|
120
|
+
"- 429: Rate limit exceeded — retry after a short wait.",
|
|
121
|
+
].join("\n"),
|
|
122
|
+
inputSchema: ListProjectsSchema.shape,
|
|
123
|
+
annotations: {
|
|
124
|
+
readOnlyHint: true,
|
|
125
|
+
destructiveHint: false,
|
|
126
|
+
idempotentHint: true,
|
|
127
|
+
openWorldHint: true,
|
|
128
|
+
},
|
|
129
|
+
}, async (args) => {
|
|
130
|
+
try {
|
|
131
|
+
const { search, status, sort, limit, offset, response_format, } = args;
|
|
132
|
+
const response = await apiClient.listProjects({
|
|
133
|
+
search,
|
|
134
|
+
status,
|
|
135
|
+
sort,
|
|
136
|
+
limit,
|
|
137
|
+
page: offset !== undefined && limit ? Math.floor(offset / limit) + 1 : undefined,
|
|
138
|
+
});
|
|
139
|
+
const projects = response.data;
|
|
140
|
+
const meta = response.meta;
|
|
141
|
+
if (response_format === "json") {
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{
|
|
145
|
+
type: "text",
|
|
146
|
+
text: JSON.stringify({
|
|
147
|
+
projects,
|
|
148
|
+
pagination: meta
|
|
149
|
+
? {
|
|
150
|
+
page: meta.page,
|
|
151
|
+
limit: meta.limit,
|
|
152
|
+
total: meta.total,
|
|
153
|
+
returned: projects.length,
|
|
154
|
+
}
|
|
155
|
+
: null,
|
|
156
|
+
}, null, 2),
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// Markdown format
|
|
162
|
+
const lines = [];
|
|
163
|
+
lines.push("# Qualitas Projects");
|
|
164
|
+
lines.push("");
|
|
165
|
+
if (projects.length === 0) {
|
|
166
|
+
lines.push("_No projects found._");
|
|
167
|
+
if (search) {
|
|
168
|
+
lines.push(`No results matching "${search}".`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
// Table header
|
|
173
|
+
lines.push("| ID | Name | Status | Flows | Passing | Failing | Last Run |");
|
|
174
|
+
lines.push("|----|------|--------|-------|---------|---------|----------|");
|
|
175
|
+
for (const project of projects) {
|
|
176
|
+
lines.push(formatProjectRow(project));
|
|
177
|
+
}
|
|
178
|
+
// Pagination summary
|
|
179
|
+
if (meta) {
|
|
180
|
+
lines.push("");
|
|
181
|
+
const showing = `Showing ${projects.length} of ${meta.total} projects`;
|
|
182
|
+
const pageInfo = `Page ${meta.page} (limit ${meta.limit})`;
|
|
183
|
+
lines.push(`_${showing} | ${pageInfo}_`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
return {
|
|
192
|
+
content: [{ type: "text", text: handleApiError(error) }],
|
|
193
|
+
isError: true,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// -----------------------------------------
|
|
198
|
+
// 2. qualitas_get_project
|
|
199
|
+
// -----------------------------------------
|
|
200
|
+
server.registerTool("get_project", {
|
|
201
|
+
title: "Get Project Details",
|
|
202
|
+
description: [
|
|
203
|
+
"Retrieve full details for a single Qualitas project by its ID.",
|
|
204
|
+
"",
|
|
205
|
+
"**Arguments:**",
|
|
206
|
+
"- `project_id` (string, required): UUID of the project to retrieve.",
|
|
207
|
+
"- `response_format` (string, optional): `markdown` (default) or `json`.",
|
|
208
|
+
"",
|
|
209
|
+
"**Returns:**",
|
|
210
|
+
"- Markdown format: Full project details including name, description, status, base URL, icon, flow/pass/fail counts, and timestamps.",
|
|
211
|
+
"- JSON format: Raw project object with all fields.",
|
|
212
|
+
"",
|
|
213
|
+
"**Examples:**",
|
|
214
|
+
"```",
|
|
215
|
+
'qualitas_get_project({ project_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" })',
|
|
216
|
+
'```',
|
|
217
|
+
"",
|
|
218
|
+
"**Error Handling:**",
|
|
219
|
+
"- 401: Invalid or expired API key.",
|
|
220
|
+
"- 404: Project not found — verify the project ID is correct.",
|
|
221
|
+
].join("\n"),
|
|
222
|
+
inputSchema: GetProjectSchema.shape,
|
|
223
|
+
annotations: {
|
|
224
|
+
readOnlyHint: true,
|
|
225
|
+
destructiveHint: false,
|
|
226
|
+
idempotentHint: true,
|
|
227
|
+
openWorldHint: true,
|
|
228
|
+
},
|
|
229
|
+
}, async (args) => {
|
|
230
|
+
try {
|
|
231
|
+
const { project_id, response_format } = args;
|
|
232
|
+
const response = await apiClient.getProject(project_id);
|
|
233
|
+
const project = response.data;
|
|
234
|
+
if (response_format === "json") {
|
|
235
|
+
return {
|
|
236
|
+
content: [
|
|
237
|
+
{
|
|
238
|
+
type: "text",
|
|
239
|
+
text: JSON.stringify(project, null, 2),
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
// Markdown format
|
|
245
|
+
const lines = [];
|
|
246
|
+
lines.push(formatProjectMarkdown(project));
|
|
247
|
+
lines.push("");
|
|
248
|
+
lines.push(`[Open in Qualitas →](${buildProjectLink(project.id)})`);
|
|
249
|
+
return {
|
|
250
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
return {
|
|
255
|
+
content: [{ type: "text", text: handleApiError(error) }],
|
|
256
|
+
isError: true,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
// -----------------------------------------
|
|
261
|
+
// 3. qualitas_create_project
|
|
262
|
+
// -----------------------------------------
|
|
263
|
+
server.registerTool("create_project", {
|
|
264
|
+
title: "Create Project",
|
|
265
|
+
description: [
|
|
266
|
+
"Create a new Qualitas project.",
|
|
267
|
+
"",
|
|
268
|
+
"**Arguments:**",
|
|
269
|
+
"- `name` (string, required): Project name (1–100 characters).",
|
|
270
|
+
"- `description` (string, optional): Project description (max 500 characters).",
|
|
271
|
+
"- `icon` (string, optional): Icon name, e.g. `shopping-cart`, `globe`, `bank`.",
|
|
272
|
+
"- `icon_color` (string, optional): Icon color, e.g. `blue`, `green`, `red`.",
|
|
273
|
+
"- `base_url` (string, optional): Base URL of the application under test (must be a valid URL).",
|
|
274
|
+
"",
|
|
275
|
+
"**Returns:**",
|
|
276
|
+
"The created project details and a deep-link URL to open it in the Qualitas web app.",
|
|
277
|
+
"",
|
|
278
|
+
"**Examples:**",
|
|
279
|
+
"```",
|
|
280
|
+
'qualitas_create_project({',
|
|
281
|
+
' name: "E-commerce Checkout",',
|
|
282
|
+
' description: "End-to-end tests for the checkout flow",',
|
|
283
|
+
' base_url: "https://shop.example.com"',
|
|
284
|
+
'})',
|
|
285
|
+
'```',
|
|
286
|
+
"",
|
|
287
|
+
"**Error Handling:**",
|
|
288
|
+
"- 401: Invalid or expired API key.",
|
|
289
|
+
"- 422: Validation error — check name length and URL format.",
|
|
290
|
+
].join("\n"),
|
|
291
|
+
inputSchema: CreateProjectSchema.shape,
|
|
292
|
+
annotations: {
|
|
293
|
+
readOnlyHint: false,
|
|
294
|
+
destructiveHint: false,
|
|
295
|
+
idempotentHint: false,
|
|
296
|
+
openWorldHint: true,
|
|
297
|
+
},
|
|
298
|
+
}, async (args) => {
|
|
299
|
+
try {
|
|
300
|
+
const data = args;
|
|
301
|
+
const response = await apiClient.createProject(data);
|
|
302
|
+
const project = response.data;
|
|
303
|
+
const lines = [];
|
|
304
|
+
lines.push("# Project Created");
|
|
305
|
+
lines.push("");
|
|
306
|
+
lines.push(formatProjectMarkdown(project));
|
|
307
|
+
lines.push("");
|
|
308
|
+
lines.push(`**Link:** [Open in Qualitas →](${buildProjectLink(project.id)})`);
|
|
309
|
+
return {
|
|
310
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
return {
|
|
315
|
+
content: [{ type: "text", text: handleApiError(error) }],
|
|
316
|
+
isError: true,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
// -----------------------------------------
|
|
321
|
+
// 4. qualitas_update_project
|
|
322
|
+
// -----------------------------------------
|
|
323
|
+
server.registerTool("update_project", {
|
|
324
|
+
title: "Update Project",
|
|
325
|
+
description: [
|
|
326
|
+
"Update an existing Qualitas project. Only provided fields are changed; omitted fields remain unchanged.",
|
|
327
|
+
"",
|
|
328
|
+
"**Arguments:**",
|
|
329
|
+
"- `project_id` (string, required): UUID of the project to update.",
|
|
330
|
+
"- `name` (string, optional): New project name (1–100 characters).",
|
|
331
|
+
"- `description` (string, optional): New project description (max 500 characters).",
|
|
332
|
+
"- `base_url` (string, optional): New base URL (must be a valid URL).",
|
|
333
|
+
"",
|
|
334
|
+
"**Returns:**",
|
|
335
|
+
"The updated project details.",
|
|
336
|
+
"",
|
|
337
|
+
"**Examples:**",
|
|
338
|
+
"```",
|
|
339
|
+
'qualitas_update_project({',
|
|
340
|
+
' project_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",',
|
|
341
|
+
' name: "Renamed Project",',
|
|
342
|
+
' description: "Updated description"',
|
|
343
|
+
'})',
|
|
344
|
+
'```',
|
|
345
|
+
"",
|
|
346
|
+
"**Error Handling:**",
|
|
347
|
+
"- 401: Invalid or expired API key.",
|
|
348
|
+
"- 404: Project not found — verify the project ID.",
|
|
349
|
+
"- 422: Validation error — check field constraints.",
|
|
350
|
+
].join("\n"),
|
|
351
|
+
inputSchema: UpdateProjectSchema.shape,
|
|
352
|
+
annotations: {
|
|
353
|
+
readOnlyHint: false,
|
|
354
|
+
destructiveHint: false,
|
|
355
|
+
idempotentHint: true,
|
|
356
|
+
openWorldHint: true,
|
|
357
|
+
},
|
|
358
|
+
}, async (args) => {
|
|
359
|
+
try {
|
|
360
|
+
const { project_id, ...data } = args;
|
|
361
|
+
const response = await apiClient.updateProject(project_id, data);
|
|
362
|
+
const project = response.data;
|
|
363
|
+
const lines = [];
|
|
364
|
+
lines.push("# Project Updated");
|
|
365
|
+
lines.push("");
|
|
366
|
+
lines.push(formatProjectMarkdown(project));
|
|
367
|
+
lines.push("");
|
|
368
|
+
lines.push(`**Link:** [Open in Qualitas →](${buildProjectLink(project.id)})`);
|
|
369
|
+
return {
|
|
370
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
return {
|
|
375
|
+
content: [{ type: "text", text: handleApiError(error) }],
|
|
376
|
+
isError: true,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,8CAA8C;AAC9C,qBAAqB;AACrB,8CAA8C;AAE9C,SAAS,UAAU,CAAC,GAAuB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;QAC3C,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,KAAK,GAAG,MAAM,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,KAAK,GAAG,MAAM,CAAC;QACxB,KAAK,UAAU;YACb,OAAO,IAAI,GAAG,MAAM,CAAC;QACvB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAoB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE3D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,gBAAgB;IAChB,IACE,OAAO,CAAC,WAAW,KAAK,SAAS;QACjC,OAAO,CAAC,aAAa,KAAK,SAAS;QACnC,OAAO,CAAC,aAAa,KAAK,SAAS,EACnC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7H,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IAC3C,OAAO,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,QAAQ,OAAO,QAAQ,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AACjM,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,GAAG,OAAO,aAAa,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,8CAA8C;AAC9C,oBAAoB;AACpB,8CAA8C;AAE9C,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,SAA4B;IAE5B,4CAA4C;IAC5C,4BAA4B;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE;YACX,8EAA8E;YAC9E,EAAE;YACF,gBAAgB;YAChB,0FAA0F;YAC1F,sGAAsG;YACtG,mGAAmG;YACnG,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,EAAE;YACF,cAAc;YACd,sJAAsJ;YACtJ,uEAAuE;YACvE,EAAE;YACF,eAAe;YACf,KAAK;YACL,sBAAsB;YACtB,4BAA4B;YAC5B,EAAE;YACF,uBAAuB;YACvB,yEAAyE;YACzE,KAAK;YACL,EAAE;YACF,qBAAqB;YACrB,oCAAoC;YACpC,wDAAwD;SACzD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,kBAAkB,CAAC,KAAK;QACrC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,eAAe,GAChB,GAAG,IAOH,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;gBAC5C,MAAM;gBACN,MAAM;gBACN,IAAI;gBACJ,KAAK;gBACL,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,QAAQ;gCACR,UAAU,EAAE,IAAI;oCACd,CAAC,CAAC;wCACE,IAAI,EAAE,IAAI,CAAC,IAAI;wCACf,KAAK,EAAE,IAAI,CAAC,KAAK;wCACjB,KAAK,EAAE,IAAI,CAAC,KAAK;wCACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM;qCAC1B;oCACH,CAAC,CAAC,IAAI;6BACT,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,kBAAkB;YAClB,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACnC,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,IAAI,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,KAAK,CAAC,IAAI,CACR,+DAA+D,CAChE,CAAC;gBACF,KAAK,CAAC,IAAI,CACR,+DAA+D,CAChE,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxC,CAAC;gBAED,qBAAqB;gBACrB,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACf,MAAM,OAAO,GAAG,WAAW,QAAQ,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,WAAW,CAAC;oBACvE,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC;oBAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,MAAM,QAAQ,GAAG,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4CAA4C;IAC5C,0BAA0B;IAC1B,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE;YACX,gEAAgE;YAChE,EAAE;YACF,gBAAgB;YAChB,qEAAqE;YACrE,yEAAyE;YACzE,EAAE;YACF,cAAc;YACd,qIAAqI;YACrI,oDAAoD;YACpD,EAAE;YACF,eAAe;YACf,KAAK;YACL,8EAA8E;YAC9E,KAAK;YACL,EAAE;YACF,qBAAqB;YACrB,oCAAoC;YACpC,8DAA8D;SAC/D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,gBAAgB,CAAC,KAAK;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,IAGvC,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE9B,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,kBAAkB;YAClB,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4CAA4C;IAC5C,6BAA6B;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE;YACX,gCAAgC;YAChC,EAAE;YACF,gBAAgB;YAChB,+DAA+D;YAC/D,+EAA+E;YAC/E,gFAAgF;YAChF,6EAA6E;YAC7E,gGAAgG;YAChG,EAAE;YACF,cAAc;YACd,qFAAqF;YACrF,EAAE;YACF,eAAe;YACf,KAAK;YACL,2BAA2B;YAC3B,gCAAgC;YAChC,0DAA0D;YAC1D,wCAAwC;YACxC,IAAI;YACJ,KAAK;YACL,EAAE;YACF,qBAAqB;YACrB,oCAAoC;YACpC,6DAA6D;SAC9D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAMZ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,kCAAkC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAE9E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4CAA4C;IAC5C,6BAA6B;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE;YACX,yGAAyG;YACzG,EAAE;YACF,gBAAgB;YAChB,mEAAmE;YACnE,mEAAmE;YACnE,mFAAmF;YACnF,sEAAsE;YACtE,EAAE;YACF,cAAc;YACd,8BAA8B;YAC9B,EAAE;YACF,eAAe;YACf,KAAK;YACL,2BAA2B;YAC3B,uDAAuD;YACvD,4BAA4B;YAC5B,sCAAsC;YACtC,IAAI;YACJ,KAAK;YACL,EAAE;YACF,qBAAqB;YACrB,oCAAoC;YACpC,mDAAmD;YACnD,oDAAoD;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAK/B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,kCAAkC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAE9E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qualitas MCP Server - Run Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for triggering flow execution, checking run status, and listing run history.
|
|
5
|
+
*/
|
|
6
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import type { QualitasApiClient } from "../services/api-client.js";
|
|
8
|
+
export declare function registerRunTools(server: McpServer, apiClient: QualitasApiClient): void;
|
|
9
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/tools/runs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA0HnE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CAqQN"}
|