@qase/mcp-server 1.1.8 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +75 -542
- package/build/auth/client-context.d.ts +12 -0
- package/build/auth/client-context.d.ts.map +1 -0
- package/build/auth/client-context.js +12 -0
- package/build/auth/client-context.js.map +1 -0
- package/build/auth/jwks-verifier.d.ts +15 -0
- package/build/auth/jwks-verifier.d.ts.map +1 -0
- package/build/auth/jwks-verifier.js +31 -0
- package/build/auth/jwks-verifier.js.map +1 -0
- package/build/auth/mcp-guard.d.ts +15 -0
- package/build/auth/mcp-guard.d.ts.map +1 -0
- package/build/auth/mcp-guard.js +44 -0
- package/build/auth/mcp-guard.js.map +1 -0
- package/build/auth/oauth-config.d.ts +40 -0
- package/build/auth/oauth-config.d.ts.map +1 -0
- package/build/auth/oauth-config.js +34 -0
- package/build/auth/oauth-config.js.map +1 -0
- package/build/auth/proxy-provider.d.ts +31 -0
- package/build/auth/proxy-provider.d.ts.map +1 -0
- package/build/auth/proxy-provider.js +87 -0
- package/build/auth/proxy-provider.js.map +1 -0
- package/build/auth/token-type.d.ts +7 -0
- package/build/auth/token-type.d.ts.map +1 -0
- package/build/auth/token-type.js +10 -0
- package/build/auth/token-type.js.map +1 -0
- package/build/cache/circuit-breaker.d.ts +33 -0
- package/build/cache/circuit-breaker.d.ts.map +1 -0
- package/build/cache/circuit-breaker.js +68 -0
- package/build/cache/circuit-breaker.js.map +1 -0
- package/build/cache/index.d.ts +24 -0
- package/build/cache/index.d.ts.map +1 -0
- package/build/cache/index.js +86 -0
- package/build/cache/index.js.map +1 -0
- package/build/cache/keys.d.ts +25 -0
- package/build/cache/keys.d.ts.map +1 -0
- package/build/cache/keys.js +36 -0
- package/build/cache/keys.js.map +1 -0
- package/build/cache/layered.d.ts +31 -0
- package/build/cache/layered.d.ts.map +1 -0
- package/build/cache/layered.js +88 -0
- package/build/cache/layered.js.map +1 -0
- package/build/cache/memory.d.ts +32 -0
- package/build/cache/memory.d.ts.map +1 -0
- package/build/cache/memory.js +108 -0
- package/build/cache/memory.js.map +1 -0
- package/build/cache/metrics.d.ts +31 -0
- package/build/cache/metrics.d.ts.map +1 -0
- package/build/cache/metrics.js +95 -0
- package/build/cache/metrics.js.map +1 -0
- package/build/cache/prom-format.d.ts +7 -0
- package/build/cache/prom-format.d.ts.map +1 -0
- package/build/cache/prom-format.js +16 -0
- package/build/cache/prom-format.js.map +1 -0
- package/build/cache/redis-bus.d.ts +29 -0
- package/build/cache/redis-bus.d.ts.map +1 -0
- package/build/cache/redis-bus.js +50 -0
- package/build/cache/redis-bus.js.map +1 -0
- package/build/cache/redis.d.ts +32 -0
- package/build/cache/redis.d.ts.map +1 -0
- package/build/cache/redis.js +89 -0
- package/build/cache/redis.js.map +1 -0
- package/build/cache/types.d.ts +38 -0
- package/build/cache/types.d.ts.map +1 -0
- package/build/cache/types.js +2 -0
- package/build/cache/types.js.map +1 -0
- package/build/client/index.d.ts +10 -3
- package/build/client/index.d.ts.map +1 -1
- package/build/client/index.js +75 -50
- package/build/client/index.js.map +1 -1
- package/build/http/agent.d.ts +16 -0
- package/build/http/agent.d.ts.map +1 -0
- package/build/http/agent.js +16 -0
- package/build/http/agent.js.map +1 -0
- package/build/http/dedupe.d.ts +14 -0
- package/build/http/dedupe.d.ts.map +1 -0
- package/build/http/dedupe.js +69 -0
- package/build/http/dedupe.js.map +1 -0
- package/build/http/index.d.ts +6 -0
- package/build/http/index.d.ts.map +1 -0
- package/build/http/index.js +4 -0
- package/build/http/index.js.map +1 -0
- package/build/http/retry.d.ts +18 -0
- package/build/http/retry.d.ts.map +1 -0
- package/build/http/retry.js +52 -0
- package/build/http/retry.js.map +1 -0
- package/build/index.d.ts +1 -18
- package/build/index.d.ts.map +1 -1
- package/build/index.js +95 -63
- package/build/index.js.map +1 -1
- package/build/operations-v2/composites/ci-report.d.ts +2 -0
- package/build/operations-v2/composites/ci-report.d.ts.map +1 -0
- package/build/operations-v2/composites/ci-report.js +99 -0
- package/build/operations-v2/composites/ci-report.js.map +1 -0
- package/build/operations-v2/composites/regression-run.d.ts +2 -0
- package/build/operations-v2/composites/regression-run.d.ts.map +1 -0
- package/build/operations-v2/composites/regression-run.js +81 -0
- package/build/operations-v2/composites/regression-run.js.map +1 -0
- package/build/operations-v2/composites/triage-defect.d.ts +2 -0
- package/build/operations-v2/composites/triage-defect.d.ts.map +1 -0
- package/build/operations-v2/composites/triage-defect.js +67 -0
- package/build/operations-v2/composites/triage-defect.js.map +1 -0
- package/build/operations-v2/escape/api.d.ts +2 -0
- package/build/operations-v2/escape/api.d.ts.map +1 -0
- package/build/operations-v2/escape/api.js +34 -0
- package/build/operations-v2/escape/api.js.map +1 -0
- package/build/operations-v2/index.d.ts +21 -0
- package/build/operations-v2/index.d.ts.map +1 -0
- package/build/operations-v2/index.js +27 -0
- package/build/operations-v2/index.js.map +1 -0
- package/build/operations-v2/meta/discover.d.ts +9 -0
- package/build/operations-v2/meta/discover.d.ts.map +1 -0
- package/build/operations-v2/meta/discover.js +79 -0
- package/build/operations-v2/meta/discover.js.map +1 -0
- package/build/{operations/search.d.ts → operations-v2/qql/index.d.ts} +1 -1
- package/build/operations-v2/qql/index.d.ts.map +1 -0
- package/build/{operations/search.js → operations-v2/qql/index.js} +34 -9
- package/build/operations-v2/qql/index.js.map +1 -0
- package/build/operations-v2/read/get.d.ts +2 -0
- package/build/operations-v2/read/get.d.ts.map +1 -0
- package/build/operations-v2/read/get.js +115 -0
- package/build/operations-v2/read/get.js.map +1 -0
- package/build/operations-v2/read/project-context.d.ts +2 -0
- package/build/operations-v2/read/project-context.d.ts.map +1 -0
- package/build/operations-v2/read/project-context.js +102 -0
- package/build/operations-v2/read/project-context.js.map +1 -0
- package/build/operations-v2/write/attachments.d.ts +2 -0
- package/build/operations-v2/write/attachments.d.ts.map +1 -0
- package/build/operations-v2/write/attachments.js +58 -0
- package/build/operations-v2/write/attachments.js.map +1 -0
- package/build/operations-v2/write/case-fields.d.ts +206 -0
- package/build/operations-v2/write/case-fields.d.ts.map +1 -0
- package/build/operations-v2/write/case-fields.js +79 -0
- package/build/operations-v2/write/case-fields.js.map +1 -0
- package/build/operations-v2/write/cases-bulk.d.ts +2 -0
- package/build/operations-v2/write/cases-bulk.d.ts.map +1 -0
- package/build/operations-v2/write/cases-bulk.js +54 -0
- package/build/operations-v2/write/cases-bulk.js.map +1 -0
- package/build/operations-v2/write/cases.d.ts +2 -0
- package/build/operations-v2/write/cases.d.ts.map +1 -0
- package/build/operations-v2/write/cases.js +52 -0
- package/build/operations-v2/write/cases.js.map +1 -0
- package/build/operations-v2/write/defects.d.ts +2 -0
- package/build/operations-v2/write/defects.d.ts.map +1 -0
- package/build/operations-v2/write/defects.js +81 -0
- package/build/operations-v2/write/defects.js.map +1 -0
- package/build/operations-v2/write/environments.d.ts +2 -0
- package/build/operations-v2/write/environments.d.ts.map +1 -0
- package/build/operations-v2/write/environments.js +56 -0
- package/build/operations-v2/write/environments.js.map +1 -0
- package/build/operations-v2/write/external-issues.d.ts +2 -0
- package/build/operations-v2/write/external-issues.d.ts.map +1 -0
- package/build/operations-v2/write/external-issues.js +96 -0
- package/build/operations-v2/write/external-issues.js.map +1 -0
- package/build/operations-v2/write/milestones.d.ts +2 -0
- package/build/operations-v2/write/milestones.d.ts.map +1 -0
- package/build/operations-v2/write/milestones.js +56 -0
- package/build/operations-v2/write/milestones.js.map +1 -0
- package/build/operations-v2/write/plans.d.ts +2 -0
- package/build/operations-v2/write/plans.d.ts.map +1 -0
- package/build/operations-v2/write/plans.js +55 -0
- package/build/operations-v2/write/plans.js.map +1 -0
- package/build/operations-v2/write/results.d.ts +2 -0
- package/build/operations-v2/write/results.d.ts.map +1 -0
- package/build/operations-v2/write/results.js +72 -0
- package/build/operations-v2/write/results.js.map +1 -0
- package/build/operations-v2/write/runs.d.ts +2 -0
- package/build/operations-v2/write/runs.d.ts.map +1 -0
- package/build/operations-v2/write/runs.js +84 -0
- package/build/operations-v2/write/runs.js.map +1 -0
- package/build/operations-v2/write/shared-steps.d.ts +2 -0
- package/build/operations-v2/write/shared-steps.d.ts.map +1 -0
- package/build/operations-v2/write/shared-steps.js +60 -0
- package/build/operations-v2/write/shared-steps.js.map +1 -0
- package/build/operations-v2/write/suites.d.ts +2 -0
- package/build/operations-v2/write/suites.d.ts.map +1 -0
- package/build/operations-v2/write/suites.js +63 -0
- package/build/operations-v2/write/suites.js.map +1 -0
- package/build/prompts/index.d.ts +31 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +229 -0
- package/build/prompts/index.js.map +1 -0
- package/build/transports/sse.d.ts.map +1 -1
- package/build/transports/sse.js +6 -0
- package/build/transports/sse.js.map +1 -1
- package/build/transports/streamableHttp.d.ts +6 -1
- package/build/transports/streamableHttp.d.ts.map +1 -1
- package/build/transports/streamableHttp.js +128 -16
- package/build/transports/streamableHttp.js.map +1 -1
- package/build/utils/auth-context.d.ts +8 -0
- package/build/utils/auth-context.d.ts.map +1 -1
- package/build/utils/auth-context.js +18 -0
- package/build/utils/auth-context.js.map +1 -1
- package/build/utils/case-enums.d.ts +5 -3
- package/build/utils/case-enums.d.ts.map +1 -1
- package/build/utils/case-enums.js +77 -59
- package/build/utils/case-enums.js.map +1 -1
- package/build/utils/output-schemas.d.ts +16 -0
- package/build/utils/output-schemas.d.ts.map +1 -0
- package/build/utils/output-schemas.js +82 -0
- package/build/utils/output-schemas.js.map +1 -0
- package/build/utils/registry.d.ts +42 -9
- package/build/utils/registry.d.ts.map +1 -1
- package/build/utils/registry.js +64 -11
- package/build/utils/registry.js.map +1 -1
- package/build/utils/response-shape.d.ts +23 -0
- package/build/utils/response-shape.d.ts.map +1 -0
- package/build/utils/response-shape.js +73 -0
- package/build/utils/response-shape.js.map +1 -0
- package/build/utils/rich-response.d.ts +58 -0
- package/build/utils/rich-response.d.ts.map +1 -0
- package/build/utils/rich-response.js +93 -0
- package/build/utils/rich-response.js.map +1 -0
- package/build/utils/server-context.d.ts +65 -0
- package/build/utils/server-context.d.ts.map +1 -0
- package/build/utils/server-context.js +67 -0
- package/build/utils/server-context.js.map +1 -0
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/docs/connect.md +81 -0
- package/docs/migration.md +351 -0
- package/docs/self-run.md +270 -0
- package/docs/tools.md +111 -0
- package/docs/troubleshooting.md +144 -0
- package/package.json +11 -2
- package/server.json +8 -2
- package/build/operations/attachments.d.ts +0 -8
- package/build/operations/attachments.d.ts.map +0 -1
- package/build/operations/attachments.js +0 -146
- package/build/operations/attachments.js.map +0 -1
- package/build/operations/authors.d.ts +0 -8
- package/build/operations/authors.d.ts.map +0 -1
- package/build/operations/authors.js +0 -70
- package/build/operations/authors.js.map +0 -1
- package/build/operations/cases.d.ts +0 -8
- package/build/operations/cases.d.ts.map +0 -1
- package/build/operations/cases.js +0 -370
- package/build/operations/cases.js.map +0 -1
- package/build/operations/configurations.d.ts +0 -10
- package/build/operations/configurations.d.ts.map +0 -1
- package/build/operations/configurations.js +0 -125
- package/build/operations/configurations.js.map +0 -1
- package/build/operations/custom-fields.d.ts +0 -8
- package/build/operations/custom-fields.d.ts.map +0 -1
- package/build/operations/custom-fields.js +0 -172
- package/build/operations/custom-fields.js.map +0 -1
- package/build/operations/defects.d.ts +0 -8
- package/build/operations/defects.d.ts.map +0 -1
- package/build/operations/defects.js +0 -256
- package/build/operations/defects.js.map +0 -1
- package/build/operations/environments.d.ts +0 -8
- package/build/operations/environments.d.ts.map +0 -1
- package/build/operations/environments.js +0 -154
- package/build/operations/environments.js.map +0 -1
- package/build/operations/milestones.d.ts +0 -8
- package/build/operations/milestones.d.ts.map +0 -1
- package/build/operations/milestones.js +0 -155
- package/build/operations/milestones.js.map +0 -1
- package/build/operations/plans.d.ts +0 -8
- package/build/operations/plans.d.ts.map +0 -1
- package/build/operations/plans.js +0 -158
- package/build/operations/plans.js.map +0 -1
- package/build/operations/projects.d.ts +0 -8
- package/build/operations/projects.d.ts.map +0 -1
- package/build/operations/projects.js +0 -192
- package/build/operations/projects.js.map +0 -1
- package/build/operations/results.d.ts +0 -8
- package/build/operations/results.d.ts.map +0 -1
- package/build/operations/results.js +0 -214
- package/build/operations/results.js.map +0 -1
- package/build/operations/runs.d.ts +0 -8
- package/build/operations/runs.d.ts.map +0 -1
- package/build/operations/runs.js +0 -224
- package/build/operations/runs.js.map +0 -1
- package/build/operations/search.d.ts.map +0 -1
- package/build/operations/search.js.map +0 -1
- package/build/operations/shared-parameters.d.ts +0 -10
- package/build/operations/shared-parameters.d.ts.map +0 -1
- package/build/operations/shared-parameters.js +0 -93
- package/build/operations/shared-parameters.js.map +0 -1
- package/build/operations/shared-steps.d.ts +0 -8
- package/build/operations/shared-steps.d.ts.map +0 -1
- package/build/operations/shared-steps.js +0 -160
- package/build/operations/shared-steps.js.map +0 -1
- package/build/operations/suites.d.ts +0 -8
- package/build/operations/suites.d.ts.map +0 -1
- package/build/operations/suites.js +0 -169
- package/build/operations/suites.js.map +0 -1
- package/build/operations/system-fields.d.ts +0 -10
- package/build/operations/system-fields.d.ts.map +0 -1
- package/build/operations/system-fields.js +0 -47
- package/build/operations/system-fields.js.map +0 -1
- package/build/operations/users.d.ts +0 -10
- package/build/operations/users.d.ts.map +0 -1
- package/build/operations/users.js +0 -78
- package/build/operations/users.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, UpdateAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const CONTEXT = 'external issue link operation';
|
|
7
|
+
const LinkSchema = z.object({
|
|
8
|
+
id: IdSchema.describe('Test case ID (entity="case") or test run ID (entity="run")'),
|
|
9
|
+
issues: z
|
|
10
|
+
.array(z.string().min(1))
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('External issue keys, e.g. ["PROJ-1234"]. Required for cases (attach and detach) and ' +
|
|
13
|
+
'for attaching to a run — a run accepts exactly one issue. Omit when detaching a run.'),
|
|
14
|
+
});
|
|
15
|
+
const Schema = z.object({
|
|
16
|
+
code: ProjectCodeSchema,
|
|
17
|
+
entity: z.enum(['case', 'run']).describe('Entity to link — test case or test run'),
|
|
18
|
+
action: z
|
|
19
|
+
.enum(['attach', 'detach'])
|
|
20
|
+
.describe('attach creates the link, detach removes it (for runs, clears the single link)'),
|
|
21
|
+
type: z
|
|
22
|
+
.enum(['jira-cloud', 'jira-server'])
|
|
23
|
+
.describe('Issue tracker integration configured for the project'),
|
|
24
|
+
links: z.array(LinkSchema).min(1).describe('Entities to link, processed in a single API request'),
|
|
25
|
+
});
|
|
26
|
+
function requireIssues(link, entity) {
|
|
27
|
+
if (!link.issues?.length) {
|
|
28
|
+
throw createToolError(`No issues provided for ${entity} ${link.id} — "issues" must contain at least one external issue key (e.g. "PROJ-1234").`, CONTEXT);
|
|
29
|
+
}
|
|
30
|
+
return link.issues;
|
|
31
|
+
}
|
|
32
|
+
async function linkCases(args) {
|
|
33
|
+
const client = getApiClient();
|
|
34
|
+
const payload = {
|
|
35
|
+
type: args.type,
|
|
36
|
+
links: args.links.map((link) => ({
|
|
37
|
+
case_id: link.id,
|
|
38
|
+
external_issues: requireIssues(link, 'case'),
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
const call = args.action === 'attach'
|
|
42
|
+
? client.cases.caseAttachExternalIssue(args.code, payload)
|
|
43
|
+
: client.cases.caseDetachExternalIssue(args.code, payload);
|
|
44
|
+
return toResultAsync(call);
|
|
45
|
+
}
|
|
46
|
+
async function linkRuns(args) {
|
|
47
|
+
const client = getApiClient();
|
|
48
|
+
const payload = {
|
|
49
|
+
type: args.type,
|
|
50
|
+
links: args.links.map((link) => {
|
|
51
|
+
if (args.action === 'detach') {
|
|
52
|
+
return { run_id: link.id, external_issue: null };
|
|
53
|
+
}
|
|
54
|
+
const issues = requireIssues(link, 'run');
|
|
55
|
+
if (issues.length > 1) {
|
|
56
|
+
throw createToolError(`A test run can have only one external issue link — ${issues.length} issues provided for run ${link.id}.`, CONTEXT);
|
|
57
|
+
}
|
|
58
|
+
return { run_id: link.id, external_issue: issues[0] };
|
|
59
|
+
}),
|
|
60
|
+
};
|
|
61
|
+
return toResultAsync(client.runs.runUpdateExternalIssue(args.code, payload));
|
|
62
|
+
}
|
|
63
|
+
async function handler(rawArgs) {
|
|
64
|
+
// Tool handlers get raw MCP arguments — validate here so a malformed call
|
|
65
|
+
// returns a readable error instead of a TypeError from deeper in the code.
|
|
66
|
+
const parsed = Schema.safeParse(rawArgs);
|
|
67
|
+
if (!parsed.success) {
|
|
68
|
+
const details = parsed.error.issues
|
|
69
|
+
.map((issue) => `${issue.path.join('.') || 'arguments'}: ${issue.message}`)
|
|
70
|
+
.join('; ');
|
|
71
|
+
throw createToolError(`Invalid arguments — ${details}`, CONTEXT);
|
|
72
|
+
}
|
|
73
|
+
const args = parsed.data;
|
|
74
|
+
const result = args.entity === 'case' ? await linkCases(args) : await linkRuns(args);
|
|
75
|
+
return result.match(() => ({
|
|
76
|
+
success: true,
|
|
77
|
+
entity: args.entity,
|
|
78
|
+
action: args.action,
|
|
79
|
+
linked: args.links.length,
|
|
80
|
+
}), (e) => {
|
|
81
|
+
throw createToolError(e, CONTEXT);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
toolRegistry.register({
|
|
85
|
+
name: 'qase_external_issue_link',
|
|
86
|
+
description: 'Link or unlink test cases and test runs to issues in an external tracker (Jira Cloud or ' +
|
|
87
|
+
'Jira Server). Use `entity` to choose between cases and runs and `action` to attach or ' +
|
|
88
|
+
'detach. A test case can be linked to several issues; a test run can have only one link, ' +
|
|
89
|
+
'and attaching a new issue replaces the previous one. Read linked issues back with ' +
|
|
90
|
+
'`qase_get` (entity "case" or "run").',
|
|
91
|
+
schema: Schema,
|
|
92
|
+
handler,
|
|
93
|
+
annotations: UpdateAnnotation,
|
|
94
|
+
visibility: 'discoverable',
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=external-issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-issues.js","sourceRoot":"","sources":["../../../src/operations-v2/write/external-issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milestones.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/milestones.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const UpsertSchema = z.object({
|
|
7
|
+
code: ProjectCodeSchema,
|
|
8
|
+
id: IdSchema.optional().describe('Milestone ID — if provided, updates; if omitted, creates'),
|
|
9
|
+
title: z.string().min(1).max(255).describe('Milestone title'),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
status: z.enum(['active', 'completed']).optional(),
|
|
12
|
+
due_date: z.number().optional().describe('Due date as Unix timestamp'),
|
|
13
|
+
});
|
|
14
|
+
const DeleteSchema = z.object({
|
|
15
|
+
code: ProjectCodeSchema,
|
|
16
|
+
id: IdSchema,
|
|
17
|
+
});
|
|
18
|
+
async function upsert(args) {
|
|
19
|
+
const client = getApiClient();
|
|
20
|
+
const { code, id, ...data } = args;
|
|
21
|
+
if (id) {
|
|
22
|
+
const result = await toResultAsync(client.milestones.updateMilestone(code, id, data));
|
|
23
|
+
return result.match(() => ({ success: true, id }), (e) => {
|
|
24
|
+
throw createToolError(e, 'milestone operation');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const result = await toResultAsync(client.milestones.createMilestone(code, data));
|
|
28
|
+
return result.match((r) => r.data.result, (e) => {
|
|
29
|
+
throw createToolError(e, 'milestone operation');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async function del(args) {
|
|
33
|
+
const client = getApiClient();
|
|
34
|
+
const result = await toResultAsync(client.milestones.deleteMilestone(args.code, args.id));
|
|
35
|
+
return result.match(() => ({ success: true, id: args.id }), (e) => {
|
|
36
|
+
throw createToolError(e, 'milestone operation');
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
toolRegistry.register({
|
|
40
|
+
name: 'qase_milestone_upsert',
|
|
41
|
+
description: 'Create or update a milestone. If `id` is provided, updates the existing milestone; ' +
|
|
42
|
+
'if omitted, creates a new one.',
|
|
43
|
+
schema: UpsertSchema,
|
|
44
|
+
handler: upsert,
|
|
45
|
+
annotations: CreateAnnotation,
|
|
46
|
+
visibility: 'discoverable',
|
|
47
|
+
});
|
|
48
|
+
toolRegistry.register({
|
|
49
|
+
name: 'qase_milestone_delete',
|
|
50
|
+
description: 'Delete a milestone by project code and milestone ID.',
|
|
51
|
+
schema: DeleteSchema,
|
|
52
|
+
handler: del,
|
|
53
|
+
annotations: DeleteAnnotation,
|
|
54
|
+
visibility: 'discoverable',
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=milestones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milestones.js","sourceRoot":"","sources":["../../../src/operations-v2/write/milestones.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/plans.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const UpsertSchema = z.object({
|
|
7
|
+
code: ProjectCodeSchema,
|
|
8
|
+
id: IdSchema.optional().describe('Plan ID — if provided, updates; if omitted, creates'),
|
|
9
|
+
title: z.string().min(1).max(255).describe('Test plan title'),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
cases: z.array(z.number().int().positive()).optional().describe('Case IDs to include'),
|
|
12
|
+
});
|
|
13
|
+
const DeleteSchema = z.object({
|
|
14
|
+
code: ProjectCodeSchema,
|
|
15
|
+
id: IdSchema,
|
|
16
|
+
});
|
|
17
|
+
async function upsert(args) {
|
|
18
|
+
const client = getApiClient();
|
|
19
|
+
const { code, id, ...data } = args;
|
|
20
|
+
if (id) {
|
|
21
|
+
const result = await toResultAsync(client.plans.updatePlan(code, id, data));
|
|
22
|
+
return result.match(() => ({ success: true, id }), (e) => {
|
|
23
|
+
throw createToolError(e, 'plan operation');
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const result = await toResultAsync(client.plans.createPlan(code, data));
|
|
27
|
+
return result.match((r) => r.data.result, (e) => {
|
|
28
|
+
throw createToolError(e, 'plan operation');
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async function del(args) {
|
|
32
|
+
const client = getApiClient();
|
|
33
|
+
const result = await toResultAsync(client.plans.deletePlan(args.code, args.id));
|
|
34
|
+
return result.match(() => ({ success: true, id: args.id }), (e) => {
|
|
35
|
+
throw createToolError(e, 'plan operation');
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
toolRegistry.register({
|
|
39
|
+
name: 'qase_plan_upsert',
|
|
40
|
+
description: 'Create or update a test plan. If `id` is provided, updates the existing plan; ' +
|
|
41
|
+
'if omitted, creates a new one.',
|
|
42
|
+
schema: UpsertSchema,
|
|
43
|
+
handler: upsert,
|
|
44
|
+
annotations: CreateAnnotation,
|
|
45
|
+
visibility: 'discoverable',
|
|
46
|
+
});
|
|
47
|
+
toolRegistry.register({
|
|
48
|
+
name: 'qase_plan_delete',
|
|
49
|
+
description: 'Delete a test plan by project code and plan ID.',
|
|
50
|
+
schema: DeleteSchema,
|
|
51
|
+
handler: del,
|
|
52
|
+
annotations: DeleteAnnotation,
|
|
53
|
+
visibility: 'discoverable',
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=plans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/operations-v2/write/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/results.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const ResultStepSchema = z.object({
|
|
7
|
+
position: z.number().int().min(0),
|
|
8
|
+
status: z.enum(['passed', 'failed', 'blocked', 'skipped']),
|
|
9
|
+
comment: z.string().optional(),
|
|
10
|
+
attachments: z.array(z.string()).optional(),
|
|
11
|
+
});
|
|
12
|
+
const SingleResultSchema = z.object({
|
|
13
|
+
case_id: z.number().int().positive().optional(),
|
|
14
|
+
status: z.enum(['passed', 'failed', 'blocked', 'skipped', 'invalid']),
|
|
15
|
+
comment: z.string().optional(),
|
|
16
|
+
stacktrace: z.string().optional(),
|
|
17
|
+
time_ms: z.number().int().min(0).optional(),
|
|
18
|
+
defect: z.boolean().optional(),
|
|
19
|
+
steps: z.array(ResultStepSchema).optional(),
|
|
20
|
+
attachments: z.array(z.string()).optional(),
|
|
21
|
+
custom_field: z.record(z.any()).optional(),
|
|
22
|
+
});
|
|
23
|
+
const RecordSchema = z.object({
|
|
24
|
+
code: ProjectCodeSchema,
|
|
25
|
+
run_id: IdSchema.describe('Run ID to record results into'),
|
|
26
|
+
results: z.array(SingleResultSchema).min(1).describe('One or more results to record'),
|
|
27
|
+
});
|
|
28
|
+
const DeleteSchema = z.object({
|
|
29
|
+
code: ProjectCodeSchema,
|
|
30
|
+
run_id: IdSchema,
|
|
31
|
+
hash: z.string().min(1).describe('Result hash to delete'),
|
|
32
|
+
});
|
|
33
|
+
async function record(args) {
|
|
34
|
+
const client = getApiClient();
|
|
35
|
+
const { code, run_id, results } = args;
|
|
36
|
+
if (results.length === 1) {
|
|
37
|
+
const single = results[0];
|
|
38
|
+
const res = await toResultAsync(client.results.createResult(code, run_id, single));
|
|
39
|
+
return res.match((r) => r.data.result, (e) => {
|
|
40
|
+
throw createToolError(e, 'result operation');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const res = await toResultAsync(client.results.createResultBulk(code, run_id, { results: results }));
|
|
44
|
+
return res.match(() => ({ success: true, count: results.length }), (e) => {
|
|
45
|
+
throw createToolError(e, 'result operation');
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function del(args) {
|
|
49
|
+
const client = getApiClient();
|
|
50
|
+
const result = await toResultAsync(client.results.deleteResult(args.code, args.run_id, args.hash));
|
|
51
|
+
return result.match(() => ({ success: true, hash: args.hash }), (e) => {
|
|
52
|
+
throw createToolError(e, 'result operation');
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
toolRegistry.register({
|
|
56
|
+
name: 'qase_result_record',
|
|
57
|
+
description: 'Record one or more test results into a run. Accepts an array of results — ' +
|
|
58
|
+
'a single entry uses the single-result API, multiple entries use bulk. ' +
|
|
59
|
+
'Each result must include a status; case_id is recommended.',
|
|
60
|
+
schema: RecordSchema,
|
|
61
|
+
handler: record,
|
|
62
|
+
annotations: CreateAnnotation,
|
|
63
|
+
});
|
|
64
|
+
toolRegistry.register({
|
|
65
|
+
name: 'qase_result_delete',
|
|
66
|
+
description: 'Delete a test result by run ID and result hash.',
|
|
67
|
+
schema: DeleteSchema,
|
|
68
|
+
handler: del,
|
|
69
|
+
annotations: DeleteAnnotation,
|
|
70
|
+
visibility: 'discoverable',
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../../../src/operations-v2/write/results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/runs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, UpdateAnnotation, DeleteAnnotation, } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const RunFieldsSchema = z.object({
|
|
7
|
+
title: z.string().min(1).max(255).describe('Run title'),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
environment_id: z.number().int().positive().optional(),
|
|
10
|
+
milestone_id: z.number().int().positive().optional(),
|
|
11
|
+
plan_id: z.number().int().positive().optional().describe('Test plan to base run on'),
|
|
12
|
+
cases: z.array(z.number().int().positive()).optional().describe('Case IDs to include'),
|
|
13
|
+
tags: z.array(z.string()).optional(),
|
|
14
|
+
is_autotest: z.boolean().optional(),
|
|
15
|
+
start_time: z.string().optional().describe('RFC3339 start time'),
|
|
16
|
+
end_time: z.string().optional().describe('RFC3339 end time'),
|
|
17
|
+
custom_field: z.record(z.any()).optional(),
|
|
18
|
+
});
|
|
19
|
+
const UpsertSchema = z.object({
|
|
20
|
+
code: ProjectCodeSchema,
|
|
21
|
+
id: IdSchema.optional().describe('Run ID — if provided, this is an update (note: Qase API has limited run update support)'),
|
|
22
|
+
...RunFieldsSchema.shape,
|
|
23
|
+
});
|
|
24
|
+
const CompleteSchema = z.object({
|
|
25
|
+
code: ProjectCodeSchema,
|
|
26
|
+
id: IdSchema,
|
|
27
|
+
});
|
|
28
|
+
const DeleteSchema = z.object({
|
|
29
|
+
code: ProjectCodeSchema,
|
|
30
|
+
id: IdSchema,
|
|
31
|
+
});
|
|
32
|
+
async function upsert(args) {
|
|
33
|
+
const client = getApiClient();
|
|
34
|
+
const { code, id, ...data } = args;
|
|
35
|
+
if (id) {
|
|
36
|
+
const result = await toResultAsync(client.runs.updateRun(code, id, data));
|
|
37
|
+
return result.match(() => ({ success: true, id }), (e) => {
|
|
38
|
+
throw createToolError(e, 'run operation');
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const result = await toResultAsync(client.runs.createRun(code, data));
|
|
42
|
+
return result.match((r) => r.data.result, (e) => {
|
|
43
|
+
throw createToolError(e, 'run operation');
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async function complete(args) {
|
|
47
|
+
const client = getApiClient();
|
|
48
|
+
const { code, id } = args;
|
|
49
|
+
const result = await toResultAsync(client.runs.completeRun(code, id));
|
|
50
|
+
return result.match(() => ({ success: true, id, status: 'complete' }), (e) => {
|
|
51
|
+
throw createToolError(e, 'run operation');
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async function del(args) {
|
|
55
|
+
const client = getApiClient();
|
|
56
|
+
const result = await toResultAsync(client.runs.deleteRun(args.code, args.id));
|
|
57
|
+
return result.match(() => ({ success: true, id: args.id }), (e) => {
|
|
58
|
+
throw createToolError(e, 'run operation');
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
toolRegistry.register({
|
|
62
|
+
name: 'qase_run_upsert',
|
|
63
|
+
description: 'Create or update a test run. If `id` is provided, updates; if omitted, creates.',
|
|
64
|
+
schema: UpsertSchema,
|
|
65
|
+
handler: upsert,
|
|
66
|
+
annotations: CreateAnnotation,
|
|
67
|
+
});
|
|
68
|
+
toolRegistry.register({
|
|
69
|
+
name: 'qase_run_complete',
|
|
70
|
+
description: 'Mark a test run as complete.',
|
|
71
|
+
schema: CompleteSchema,
|
|
72
|
+
handler: complete,
|
|
73
|
+
annotations: UpdateAnnotation,
|
|
74
|
+
visibility: 'discoverable',
|
|
75
|
+
});
|
|
76
|
+
toolRegistry.register({
|
|
77
|
+
name: 'qase_run_delete',
|
|
78
|
+
description: 'Delete a test run.',
|
|
79
|
+
schema: DeleteSchema,
|
|
80
|
+
handler: del,
|
|
81
|
+
annotations: DeleteAnnotation,
|
|
82
|
+
visibility: 'discoverable',
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/operations-v2/write/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-steps.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/shared-steps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, HashSchema } from '../../utils/validation.js';
|
|
6
|
+
const StepContentSchema = z.object({
|
|
7
|
+
action: z.string().describe('Step action description'),
|
|
8
|
+
expected_result: z.string().optional().describe('Expected result'),
|
|
9
|
+
data: z.string().optional().describe('Test data'),
|
|
10
|
+
attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
|
|
11
|
+
});
|
|
12
|
+
const UpsertSchema = z.object({
|
|
13
|
+
code: ProjectCodeSchema,
|
|
14
|
+
hash: HashSchema.optional().describe('Shared step hash — if provided, updates; if omitted, creates'),
|
|
15
|
+
title: z.string().min(1).max(255).describe('Shared step title'),
|
|
16
|
+
steps: z.array(StepContentSchema).optional().describe('Array of step definitions'),
|
|
17
|
+
});
|
|
18
|
+
const DeleteSchema = z.object({
|
|
19
|
+
code: ProjectCodeSchema,
|
|
20
|
+
hash: HashSchema.describe('Shared step hash identifier'),
|
|
21
|
+
});
|
|
22
|
+
async function upsert(args) {
|
|
23
|
+
const client = getApiClient();
|
|
24
|
+
const { code, hash, ...data } = args;
|
|
25
|
+
if (hash) {
|
|
26
|
+
const result = await toResultAsync(client.sharedSteps.updateSharedStep(code, hash, data));
|
|
27
|
+
return result.match(() => ({ success: true, hash }), (e) => {
|
|
28
|
+
throw createToolError(e, 'shared step operation');
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const result = await toResultAsync(client.sharedSteps.createSharedStep(code, data));
|
|
32
|
+
return result.match((r) => r.data.result, (e) => {
|
|
33
|
+
throw createToolError(e, 'shared step operation');
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async function del(args) {
|
|
37
|
+
const client = getApiClient();
|
|
38
|
+
const result = await toResultAsync(client.sharedSteps.deleteSharedStep(args.code, args.hash));
|
|
39
|
+
return result.match(() => ({ success: true, hash: args.hash }), (e) => {
|
|
40
|
+
throw createToolError(e, 'shared step operation');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
toolRegistry.register({
|
|
44
|
+
name: 'qase_shared_step_upsert',
|
|
45
|
+
description: 'Create or update a shared step. If `hash` is provided, updates the existing shared step; ' +
|
|
46
|
+
'if omitted, creates a new one. Shared steps are reusable steps included in multiple test cases.',
|
|
47
|
+
schema: UpsertSchema,
|
|
48
|
+
handler: upsert,
|
|
49
|
+
annotations: CreateAnnotation,
|
|
50
|
+
visibility: 'discoverable',
|
|
51
|
+
});
|
|
52
|
+
toolRegistry.register({
|
|
53
|
+
name: 'qase_shared_step_delete',
|
|
54
|
+
description: 'Delete a shared step by project code and hash.',
|
|
55
|
+
schema: DeleteSchema,
|
|
56
|
+
handler: del,
|
|
57
|
+
annotations: DeleteAnnotation,
|
|
58
|
+
visibility: 'discoverable',
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=shared-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-steps.js","sourceRoot":"","sources":["../../../src/operations-v2/write/shared-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suites.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/suites.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
const UpsertSchema = z.object({
|
|
7
|
+
code: ProjectCodeSchema,
|
|
8
|
+
id: IdSchema.optional().describe('Suite ID — if provided, updates; if omitted, creates'),
|
|
9
|
+
title: z.string().min(1).max(255).describe('Suite title'),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
preconditions: z.string().optional(),
|
|
12
|
+
parent_id: z.number().int().positive().optional().describe('Parent suite ID for nesting'),
|
|
13
|
+
});
|
|
14
|
+
const DeleteSchema = z.object({
|
|
15
|
+
code: ProjectCodeSchema,
|
|
16
|
+
id: IdSchema,
|
|
17
|
+
delete_cases: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('If true, delete all cases in suite; if false, move to parent'),
|
|
21
|
+
});
|
|
22
|
+
async function upsert(args) {
|
|
23
|
+
const client = getApiClient();
|
|
24
|
+
const { code, id, ...data } = args;
|
|
25
|
+
if (id) {
|
|
26
|
+
const result = await toResultAsync(client.suites.updateSuite(code, id, data));
|
|
27
|
+
return result.match(() => ({ success: true, id }), (e) => {
|
|
28
|
+
throw createToolError(e, 'suite operation');
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const result = await toResultAsync(client.suites.createSuite(code, data));
|
|
32
|
+
return result.match((r) => r.data.result, (e) => {
|
|
33
|
+
throw createToolError(e, 'suite operation');
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async function del(args) {
|
|
37
|
+
const client = getApiClient();
|
|
38
|
+
const { code, id, delete_cases } = args;
|
|
39
|
+
const suiteDelete = delete_cases !== undefined ? { after_delete_case: delete_cases } : undefined;
|
|
40
|
+
const result = await toResultAsync(client.suites.deleteSuite(code, id, suiteDelete));
|
|
41
|
+
return result.match(() => ({ success: true, id }), (e) => {
|
|
42
|
+
throw createToolError(e, 'suite operation');
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
toolRegistry.register({
|
|
46
|
+
name: 'qase_suite_upsert',
|
|
47
|
+
description: 'Create or update a test suite. If `id` is provided, updates the existing suite; ' +
|
|
48
|
+
'if omitted, creates a new one.',
|
|
49
|
+
schema: UpsertSchema,
|
|
50
|
+
handler: upsert,
|
|
51
|
+
annotations: CreateAnnotation,
|
|
52
|
+
visibility: 'discoverable',
|
|
53
|
+
});
|
|
54
|
+
toolRegistry.register({
|
|
55
|
+
name: 'qase_suite_delete',
|
|
56
|
+
description: 'Delete a test suite. If `delete_cases` is true, removes all cases in the suite; ' +
|
|
57
|
+
'if false or omitted, cases are moved to the parent suite.',
|
|
58
|
+
schema: DeleteSchema,
|
|
59
|
+
handler: del,
|
|
60
|
+
annotations: DeleteAnnotation,
|
|
61
|
+
visibility: 'discoverable',
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=suites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suites.js","sourceRoot":"","sources":["../../../src/operations-v2/write/suites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompt Templates (Skills)
|
|
3
|
+
*
|
|
4
|
+
* Workflow recipes that MCP clients can invoke to guide agents through
|
|
5
|
+
* multi-step testing workflows using Qase tools.
|
|
6
|
+
*
|
|
7
|
+
* Each prompt returns a sequence of messages that instruct the agent
|
|
8
|
+
* how to accomplish a specific testing goal.
|
|
9
|
+
*/
|
|
10
|
+
/** Get all prompt definitions for ListPrompts */
|
|
11
|
+
export declare function listPrompts(): {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
arguments: {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
required: boolean;
|
|
18
|
+
}[];
|
|
19
|
+
}[];
|
|
20
|
+
/** Build prompt messages for GetPrompt */
|
|
21
|
+
export declare function getPrompt(name: string, args?: Record<string, string>): {
|
|
22
|
+
description: string;
|
|
23
|
+
messages: {
|
|
24
|
+
role: "user";
|
|
25
|
+
content: {
|
|
26
|
+
type: "text";
|
|
27
|
+
text: string;
|
|
28
|
+
};
|
|
29
|
+
}[];
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuNH,iDAAiD;AACjD,wBAAgB,WAAW;;;;cAnNA,MAAM;qBAAe,MAAM;kBAAY,OAAO;;IAyNxE;AAED,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;;;cAzNpD,MAAM;iBAAW;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;EA4OnE"}
|