common-qa-mcp 0.10.0 → 0.11.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/dist/adapters/http.d.ts +4 -0
- package/dist/adapters/http.d.ts.map +1 -1
- package/dist/adapters/http.js +19 -0
- package/dist/adapters/http.js.map +1 -1
- package/dist/adapters/remoteMcp/adapter.js +1 -1
- package/dist/adapters/simplifyqa/adapter.d.ts +48 -2
- package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -1
- package/dist/adapters/simplifyqa/adapter.js +369 -46
- package/dist/adapters/simplifyqa/adapter.js.map +1 -1
- package/dist/adapters/simplifyqa/mapper.d.ts.map +1 -1
- package/dist/adapters/simplifyqa/mapper.js +10 -2
- package/dist/adapters/simplifyqa/mapper.js.map +1 -1
- package/dist/adapters/types.d.ts +22 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/domain/types.d.ts +28 -0
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/initAgents.d.ts.map +1 -1
- package/dist/initAgents.js +32 -17
- package/dist/initAgents.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -12
- package/dist/server.js.map +1 -1
- package/dist/tools/backlog.tools.d.ts.map +1 -1
- package/dist/tools/backlog.tools.js +96 -0
- package/dist/tools/backlog.tools.js.map +1 -1
- package/dist/tools/discovery.tools.d.ts.map +1 -1
- package/dist/tools/discovery.tools.js +160 -10
- package/dist/tools/discovery.tools.js.map +1 -1
- package/dist/tools/recording.tools.js +74 -16
- package/dist/tools/recording.tools.js.map +1 -1
- package/dist/tools/report.tools.d.ts +12 -0
- package/dist/tools/report.tools.d.ts.map +1 -0
- package/dist/tools/report.tools.js +104 -0
- package/dist/tools/report.tools.js.map +1 -0
- package/dist/tools/testcase.tools.d.ts.map +1 -1
- package/dist/tools/testcase.tools.js +88 -11
- package/dist/tools/testcase.tools.js.map +1 -1
- package/dist/tools/xlsx.d.ts +8 -0
- package/dist/tools/xlsx.d.ts.map +1 -0
- package/dist/tools/xlsx.js +113 -0
- package/dist/tools/xlsx.js.map +1 -0
- package/package.json +1 -1
|
@@ -539,8 +539,9 @@ function registerCloseSessionWithSaveGuard(server, deps, t) {
|
|
|
539
539
|
`(Common wraps this with a SAVE GUARD covering BOTH recording paths: (a) delegated-recorder ` +
|
|
540
540
|
`drafts in Common's DraftStore — save with tc_save({draftId}) or discard with ` +
|
|
541
541
|
`tc_draft_discard({draftId}); (b) granular recordings on the Java agent (queried live via ` +
|
|
542
|
-
`core_active_recordings) —
|
|
543
|
-
|
|
542
|
+
`core_active_recordings) — save those with tc_save({ sessionId }) (it clicks the recorder ` +
|
|
543
|
+
`window's own Save button, exact parity) or by clicking Save Testcase in the /mcp-recorder ` +
|
|
544
|
+
`window. If either has unsaved work the close is REFUSED and the refusal ` +
|
|
544
545
|
`hands back a ONE-SHOT confirm token. To close AND lose the unsaved steps, call again as ` +
|
|
545
546
|
`core_close_session({ confirm: "<the-token-from-the-refusal>" }) — the browser, driver AND ` +
|
|
546
547
|
`recorder window all tear down. Only redeem the token after the user explicitly says ` +
|
|
@@ -593,7 +594,7 @@ function registerCloseSessionWithSaveGuard(server, deps, t) {
|
|
|
593
594
|
}
|
|
594
595
|
}
|
|
595
596
|
if (granularUnsaved.length) {
|
|
596
|
-
lines.push(`Unsaved GRANULAR recording(s) — click Save Testcase in the /mcp-recorder window
|
|
597
|
+
lines.push(`Unsaved GRANULAR recording(s) — save with tc_save({ sessionId }) (clicks the recorder's Save) or click Save Testcase in the /mcp-recorder window:`);
|
|
597
598
|
for (const g of granularUnsaved) {
|
|
598
599
|
lines.push(` • session ${g.sessionId} (${g.mcpSessionKey}) — ${g.stepCount} step(s)`);
|
|
599
600
|
}
|
|
@@ -603,7 +604,8 @@ function registerCloseSessionWithSaveGuard(server, deps, t) {
|
|
|
603
604
|
`${lines.join('\n')}\n\n` +
|
|
604
605
|
`ASK the user what to do:\n` +
|
|
605
606
|
` • SAVE — for a delegated draft, tc_save({ draftId: "<id>" }); for a granular ` +
|
|
606
|
-
`recording,
|
|
607
|
+
`recording, tc_save({ sessionId: "<session id>" }) (clicks the recorder's own Save, ` +
|
|
608
|
+
`exact parity) or tell the user to click Save Testcase in the recorder window.\n` +
|
|
607
609
|
` • DISCARD — for a delegated draft, tc_draft_discard({ draftId: "<id>" }); then retry close.\n` +
|
|
608
610
|
` • CLOSE ANYWAY — call core_close_session({ confirm: "${nonce}" }) to tear down the ` +
|
|
609
611
|
`browser, driver AND recorder window (all captured steps above are LOST). This token ` +
|
|
@@ -626,10 +628,12 @@ function registerCloseSessionWithSaveGuard(server, deps, t) {
|
|
|
626
628
|
}
|
|
627
629
|
/**
|
|
628
630
|
* SimplifyQA-only wrapper around `core_activate_technology`. Enforces the mobile question sequence
|
|
629
|
-
* — "Android or iOS?" then "which device?" — on EVERY call, not
|
|
630
|
-
*
|
|
631
|
-
* silently reuses the previous session's pick or infers a
|
|
632
|
-
* app") passes schema validation and starts recording on
|
|
631
|
+
* — "Android or iOS?" then "which device?" — AND the WEB AI-vs-Hybrid question, on EVERY call, not
|
|
632
|
+
* just the first of the session. The bugs this fixes: the underlying tool takes `technology` as a
|
|
633
|
+
* bare required string, so an LLM that silently reuses the previous session's pick or infers a
|
|
634
|
+
* platform from a vague prompt ("record an app") passes schema validation and starts recording on
|
|
635
|
+
* the wrong device with no re-prompt; likewise `recordingMode` defaults to AI, so a WEB recording
|
|
636
|
+
* started without asking silently drops the user's own manual clicks.
|
|
633
637
|
*
|
|
634
638
|
* Enforcement is per-rung:
|
|
635
639
|
* 1. `technology` — schema-required (Java-side).
|
|
@@ -640,13 +644,16 @@ function registerCloseSessionWithSaveGuard(server, deps, t) {
|
|
|
640
644
|
* LLM has to fill AFTER asking the user "Android or iOS?". Same soft ceiling as every other
|
|
641
645
|
* cascade in this file — the LLM can fabricate — but it makes the choice explicit in the
|
|
642
646
|
* call, so the ceiling matches deviceType/cloudDeviceType across the file.
|
|
647
|
+
* 4. WEB → `recordingModeAskedUser` MUST match `recordingMode` (AI|HYBRID) and both MUST be
|
|
648
|
+
* present. Forces the AI-only vs Hybrid question on every recording instead of letting the
|
|
649
|
+
* agent's AI default win. Only WEB is gated — Hybrid is a browser-extension feature.
|
|
643
650
|
*
|
|
644
|
-
*
|
|
645
|
-
*
|
|
651
|
+
* MAINFRAME (and every non-WEB/MOBILE technology) is forwarded verbatim — the extra rungs fire
|
|
652
|
+
* only for the technologies they apply to.
|
|
646
653
|
*/
|
|
647
654
|
function registerActivateTechnologyWithMobileGuard(server, deps, t) {
|
|
648
|
-
// Merge the agent's schema with our added
|
|
649
|
-
//
|
|
655
|
+
// Merge the agent's schema with our added rungs. Fresh object so the JSON-schema→zod conversion
|
|
656
|
+
// output (which may be typed as readonly) isn't mutated in place.
|
|
650
657
|
const base = jsonSchemaToShape(t.inputSchema) ?? {};
|
|
651
658
|
const shape = {
|
|
652
659
|
...base,
|
|
@@ -655,6 +662,12 @@ function registerActivateTechnologyWithMobileGuard(server, deps, t) {
|
|
|
655
662
|
'("record an iOS app…"), set it to that; otherwise ASK first, then set. Do NOT reuse a ' +
|
|
656
663
|
'previous session\'s answer. Must match `technology` (case-insensitive). The tool refuses ' +
|
|
657
664
|
'mobile recordings without this, so a silent tool-side pick can\'t sneak through.'),
|
|
665
|
+
recordingModeAskedUser: z.string().optional().describe('REQUIRED when technology is WEB. Set to the recording mode the USER explicitly chose after ' +
|
|
666
|
+
'you ASKED them "AI-only or Hybrid?" for THIS recording ("ai" or "hybrid"). ASK on EVERY ' +
|
|
667
|
+
'recording request, even if they answered earlier in this chat — never reuse a previous ' +
|
|
668
|
+
'recording\'s choice unless the user explicitly says "same as last time". Must match ' +
|
|
669
|
+
'`recordingMode` (case-insensitive). The tool refuses WEB recordings without this, so a ' +
|
|
670
|
+
'silent default can\'t skip the question.'),
|
|
658
671
|
};
|
|
659
672
|
server.registerTool(t.name, {
|
|
660
673
|
description: `${t.description ?? t.name}${RECORDING_MODE_PROMPT}\n\n` +
|
|
@@ -704,12 +717,57 @@ function registerActivateTechnologyWithMobileGuard(server, deps, t) {
|
|
|
704
717
|
`record on, then retry with the picked row's udid as \`deviceId\`.`);
|
|
705
718
|
}
|
|
706
719
|
}
|
|
707
|
-
//
|
|
708
|
-
//
|
|
720
|
+
// Rung 3 — force the AI-only vs Hybrid question on EVERY WEB recording. `recordingMode`
|
|
721
|
+
// defaults to AI at the agent, so without this rung an LLM that reuses the answer from an
|
|
722
|
+
// earlier recording (or skips the question) starts a WEB session with a silent mode. The
|
|
723
|
+
// marker must match the mode it claims the user picked; anything else is refused with the
|
|
724
|
+
// exact question to ask, so the choice is explicit per recording.
|
|
725
|
+
if (technology === 'WEB') {
|
|
726
|
+
const mode = typeof args['recordingMode'] === 'string'
|
|
727
|
+
? args['recordingMode'].trim().toUpperCase()
|
|
728
|
+
: '';
|
|
729
|
+
const modeAsked = typeof args['recordingModeAskedUser'] === 'string'
|
|
730
|
+
? args['recordingModeAskedUser'].trim().toLowerCase()
|
|
731
|
+
: '';
|
|
732
|
+
if (!mode || modeAsked !== mode.toLowerCase()) {
|
|
733
|
+
return err(`Refusing to start a WEB recording: no evidence the user was asked AI-only vs Hybrid ` +
|
|
734
|
+
`for THIS recording. ASK the user now: "AI-only (records only the steps I drive) or ` +
|
|
735
|
+
`Hybrid (also records your own clicks)?" — do NOT reuse the answer from an earlier ` +
|
|
736
|
+
`recording in this chat unless they explicitly say "same as last time". After they ` +
|
|
737
|
+
`answer, retry \`core_activate_technology\` with \`recordingMode\` set to AI or HYBRID ` +
|
|
738
|
+
`AND \`recordingModeAskedUser\` set to the same value. ` +
|
|
739
|
+
(mode && modeAsked !== mode.toLowerCase()
|
|
740
|
+
? `(You passed recordingModeAskedUser='${modeAsked}' but recordingMode='${mode}' — ` +
|
|
741
|
+
`those contradict. The user's answer must drive BOTH.)`
|
|
742
|
+
: ''));
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
// Duplicate-name guard: the recorder's Save button persists a NEW test case under `testcaseName`,
|
|
746
|
+
// so a clashing name has to be caught here, before the recording is started. Skipped for edit
|
|
747
|
+
// sessions (mcpTcEditSessionId) and when the user confirmed. Best-effort — lookup failure never blocks.
|
|
748
|
+
const tcName = typeof args['testcaseName'] === 'string' ? args['testcaseName'].trim() : '';
|
|
749
|
+
if (tcName && !args['mcpTcEditSessionId'] && args['allowDuplicateName'] !== true) {
|
|
750
|
+
try {
|
|
751
|
+
const hits = await a.listTestCases({ search: tcName, limit: 50 });
|
|
752
|
+
const dup = hits.find((x) => x.title.trim().toLowerCase() === tcName.toLowerCase());
|
|
753
|
+
if (dup) {
|
|
754
|
+
return err(`Refusing to start recording: a test case named "${tcName}" already exists (${dup.code ?? dup.id}). ` +
|
|
755
|
+
'ASK the user: use a different `testcaseName`, or — if they really want a second test case with ' +
|
|
756
|
+
'the same name — retry with `allowDuplicateName: true`.');
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
catch {
|
|
760
|
+
// lookup failed — proceed
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
// platformAskedUser / recordingModeAskedUser / allowDuplicateName are intercept-only — the Java
|
|
764
|
+
// tool doesn't know about them, so don't leak them downstream.
|
|
709
765
|
const forwarded = {};
|
|
710
|
-
for (const k of Object.keys(args))
|
|
711
|
-
if (k !== 'platformAskedUser')
|
|
766
|
+
for (const k of Object.keys(args)) {
|
|
767
|
+
if (k !== 'platformAskedUser' && k !== 'recordingModeAskedUser' && k !== 'allowDuplicateName') {
|
|
712
768
|
forwarded[k] = args[k];
|
|
769
|
+
}
|
|
770
|
+
}
|
|
713
771
|
try {
|
|
714
772
|
return (await a.callRaw(t.name, forwarded));
|
|
715
773
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.tools.js","sourceRoot":"","sources":["../../src/tools/recording.tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recording.tools.js","sourceRoot":"","sources":["../../src/tools/recording.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ProviderAdapter } from '../adapters/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* `report_download` — generate the same PDF reports the SimplifyQA UI offers, for a test case or a
|
|
5
|
+
* suite execution, and save them to disk. The report content/format/masking come from the product's
|
|
6
|
+
* report service; this tool only chooses the run, asks which report types, and writes the files.
|
|
7
|
+
*/
|
|
8
|
+
export type ReportToolsDeps = {
|
|
9
|
+
getAdapter: () => ProviderAdapter | null;
|
|
10
|
+
};
|
|
11
|
+
export declare function registerReportTools(server: McpServer, deps: ReportToolsDeps): void;
|
|
12
|
+
//# sourceMappingURL=report.tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.tools.d.ts","sourceRoot":"","sources":["../../src/tools/report.tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;CAC1C,CAAC;AAWF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAsFlF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { ok, err } from '../mcpResult.js';
|
|
4
|
+
const NOT_CONNECTED = 'Not connected to a product. Use qa_connect first — reports are generated by the backend report service.';
|
|
5
|
+
function describeError(e) {
|
|
6
|
+
return e instanceof Error ? e.message : String(e);
|
|
7
|
+
}
|
|
8
|
+
const norm = (v) => v.trim().toLowerCase().replace(/[-\s]+/g, '_');
|
|
9
|
+
export function registerReportTools(server, deps) {
|
|
10
|
+
server.registerTool('report_download', {
|
|
11
|
+
title: 'Download PDF reports for a test case or suite execution',
|
|
12
|
+
description: 'Generate and SAVE the PDF execution reports the SimplifyQA UI offers.\n' +
|
|
13
|
+
' • target "testcase" — report types: `detailed`, `summary` (pick one or both).\n' +
|
|
14
|
+
' • target "suite" — report types: `suite` (overall suite report), `detailed` (one detailed report ' +
|
|
15
|
+
'per test case in the suite), `summary` (one summary report per test case). Pick one, several or all.\n' +
|
|
16
|
+
'`ref` is the test case id/key (TC_123) or the suite NAME / id. If the user did NOT say which report ' +
|
|
17
|
+
'type(s) they want, call WITHOUT `reportTypes` — the tool replies with the choices; ASK the user, then ' +
|
|
18
|
+
'call again. If they named the type ("the summary pdf report"), pass it directly and do not ask. ' +
|
|
19
|
+
'The report is for ONE execution: by default the most recent one, and the response states which ' +
|
|
20
|
+
'execution was used and how many others exist — pass `runId` (execution id) to pick another. Files are ' +
|
|
21
|
+
'saved under `outDir` (default ./qa-reports) and their paths returned. Protected parameters are masked ' +
|
|
22
|
+
'by the report service. Requires a live connection; no agent needed.',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
target: z.enum(['testcase', 'suite']).describe('Report for a test case or a suite.'),
|
|
25
|
+
ref: z.string().min(1).describe('Test case id/key (TC_123), or suite name / id.'),
|
|
26
|
+
reportTypes: z.array(z.enum(['detailed', 'summary', 'suite'])).optional().describe('Which reports. Omit to get the choices and ASK the user. testcase: detailed | summary. suite: suite | detailed | summary.'),
|
|
27
|
+
runId: z.string().optional().describe('Execution id to report on. Omit to use the most recent execution.'),
|
|
28
|
+
outDir: z.string().optional().describe('Folder to save PDFs into. Default: ./qa-reports'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { readOnlyHint: false },
|
|
31
|
+
}, async ({ target, ref, reportTypes, runId, outDir }) => {
|
|
32
|
+
const adapter = deps.getAdapter();
|
|
33
|
+
if (!adapter)
|
|
34
|
+
return err(NOT_CONNECTED);
|
|
35
|
+
if (!adapter.downloadReports)
|
|
36
|
+
return err('This product does not support downloading PDF reports.');
|
|
37
|
+
try {
|
|
38
|
+
// ---- which report types?
|
|
39
|
+
const allowed = target === 'suite' ? ['suite', 'detailed', 'summary'] : ['detailed', 'summary'];
|
|
40
|
+
if (!reportTypes || reportTypes.length === 0) {
|
|
41
|
+
const choices = target === 'suite'
|
|
42
|
+
? '- `suite` — overall suite PDF report\n- `detailed` — a detailed report for EACH test case in the suite\n- `summary` — a summary report for EACH test case in the suite'
|
|
43
|
+
: '- `detailed` — detailed report\n- `summary` — summary report\n- both';
|
|
44
|
+
return ok(`Which report(s) do you want for this ${target}?\n${choices}\n\n**Ask the user** (one, several or all), then call \`report_download\` again with \`reportTypes\`.`, { needs: 'reportTypes', options: allowed });
|
|
45
|
+
}
|
|
46
|
+
const bad = reportTypes.filter((k) => !allowed.includes(k));
|
|
47
|
+
if (bad.length) {
|
|
48
|
+
return err(`Report type(s) ${bad.map((b) => `"${b}"`).join(', ')} are not available for a ${target}. Choose from: ${allowed.join(', ')}.`);
|
|
49
|
+
}
|
|
50
|
+
const kinds = [...new Set(reportTypes)];
|
|
51
|
+
// ---- which execution?
|
|
52
|
+
let execId = runId;
|
|
53
|
+
let how = '';
|
|
54
|
+
if (!execId) {
|
|
55
|
+
const entityId = await resolveEntityId(adapter, target, ref);
|
|
56
|
+
if (typeof entityId !== 'string' || entityId.startsWith('\u0000')) {
|
|
57
|
+
return err(typeof entityId === 'string' ? entityId.slice(1) : 'Could not resolve the target.');
|
|
58
|
+
}
|
|
59
|
+
if (!adapter.listRecentRuns)
|
|
60
|
+
return err('This product cannot list executions — pass `runId` (execution id).');
|
|
61
|
+
const runs = await adapter.listRecentRuns(target === 'suite' ? 'SUITE' : 'TC', entityId, 10);
|
|
62
|
+
if (!runs.length)
|
|
63
|
+
return err(`${ref} has never been executed — there is no execution to report on.`);
|
|
64
|
+
const latest = runs[0];
|
|
65
|
+
execId = latest.runId;
|
|
66
|
+
how = runs.length > 1
|
|
67
|
+
? ` Used the most recent of ${runs.length}+ executions (EX-${latest.runId}${latest.endedAt ? `, ended ${latest.endedAt}` : ''}); pass \`runId\` to choose another: ${runs.slice(1, 5).map((r) => `EX-${r.runId}`).join(', ')}.`
|
|
68
|
+
: ` Used its only execution (EX-${latest.runId}).`;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
how = ` Used execution EX-${execId} as requested.`;
|
|
72
|
+
}
|
|
73
|
+
const dir = outDir ?? join(process.cwd(), 'qa-reports');
|
|
74
|
+
const res = await adapter.downloadReports({ runId: execId, kinds, outDir: dir });
|
|
75
|
+
if (!res.files.length) {
|
|
76
|
+
return err(`No report files were produced for ${ref}.${res.notes.length ? '\n' + res.notes.join('\n') : ''}`);
|
|
77
|
+
}
|
|
78
|
+
const lines = res.files.map((f) => `- ${f.label} — \`${f.path}\` (${(f.bytes / 1024).toFixed(0)} KB)`).join('\n');
|
|
79
|
+
return ok(`Generated ${res.files.length} PDF report${res.files.length === 1 ? '' : 's'} for ${res.scope} **${ref}** (${res.runLabel}).${how}\n\n${lines}` +
|
|
80
|
+
(res.notes.length ? `\n\nNotes:\n${res.notes.map((n) => `- ${n}`).join('\n')}` : ''), { files: res.files, execution: execId, notes: res.notes });
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
return err(`Report generation failed: ${describeError(e)}`);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/** Resolve `ref` to the entity id (TC id / suite id). Returns a string, or '\u0000'+message on failure. */
|
|
88
|
+
async function resolveEntityId(adapter, target, ref) {
|
|
89
|
+
if (target === 'testcase')
|
|
90
|
+
return ref.trim();
|
|
91
|
+
if (/^\d+$/.test(ref.trim()) || /^(su|suite)[_-]\d+$/i.test(ref.trim()))
|
|
92
|
+
return ref.trim();
|
|
93
|
+
const suites = await adapter.listSuites();
|
|
94
|
+
const want = norm(ref);
|
|
95
|
+
const exact = suites.filter((s) => norm(s.name) === want || norm(s.id) === want);
|
|
96
|
+
if (exact.length === 1)
|
|
97
|
+
return exact[0].id;
|
|
98
|
+
if (exact.length > 1) {
|
|
99
|
+
return '\u0000' + `"${ref}" matches ${exact.length} suites — ambiguous. Ask the user which one:\n${exact.map((s) => `- ${s.name} (id ${s.id})`).join('\n')}`;
|
|
100
|
+
}
|
|
101
|
+
const near = suites.filter((s) => norm(s.name).includes(want)).slice(0, 10);
|
|
102
|
+
return '\u0000' + `No suite named "${ref}" was found.${near.length ? `\n\nClosest matches:\n${near.map((s) => `- ${s.name} (id ${s.id})`).join('\n')}` : ''}`;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=report.tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.tools.js","sourceRoot":"","sources":["../../src/tools/report.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testcase.tools.d.ts","sourceRoot":"","sources":["../../src/tools/testcase.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAA0B,IAAI,EAAY,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQxE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;sEAIkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAClF;0GACsG;IACtG,UAAU,CAAC,EAAE,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;CAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"testcase.tools.d.ts","sourceRoot":"","sources":["../../src/tools/testcase.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAA0B,IAAI,EAAY,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQxE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;sEAIkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAClF;0GACsG;IACtG,UAAU,CAAC,EAAE,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;CAC5C,CAAC;AAgBF;;kGAEkG;AAClG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAMrD;AA2CD;;;;;uEAKuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,UAA8B;;;;;;EAKnF;AA6BD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAk0BtF"}
|
|
@@ -10,6 +10,16 @@ import { emitTcEdit, openTcViewerWindow } from './tcEditPublisher.js';
|
|
|
10
10
|
function describeError(e) {
|
|
11
11
|
return e instanceof Error ? e.message : String(e);
|
|
12
12
|
}
|
|
13
|
+
/** First text block from an MCP tool result, for forwarding agent-side save errors. */
|
|
14
|
+
function firstText(res) {
|
|
15
|
+
const r = res;
|
|
16
|
+
if (Array.isArray(r?.content)) {
|
|
17
|
+
const text = r.content.map((c) => (typeof c?.text === 'string' ? c.text : '')).filter(Boolean).join('\n');
|
|
18
|
+
if (text)
|
|
19
|
+
return text;
|
|
20
|
+
}
|
|
21
|
+
return 'Recorder save failed.';
|
|
22
|
+
}
|
|
13
23
|
/** The agent's `read_journal` emits an API step's whole request as top-level `apiData` (the wire
|
|
14
24
|
* key), whereas the neutral Step holds it as `api`. Fold it across so the save mapper finds it and
|
|
15
25
|
* emits a real API step (with its request + assertions) instead of an empty NORMAL_STATEMENT. */
|
|
@@ -565,21 +575,63 @@ export function registerTestcaseTools(server, deps) {
|
|
|
565
575
|
}
|
|
566
576
|
});
|
|
567
577
|
server.registerTool('tc_save', {
|
|
568
|
-
title: 'Save a draft
|
|
569
|
-
description: '
|
|
570
|
-
'
|
|
571
|
-
'
|
|
578
|
+
title: 'Save a draft or a live recording',
|
|
579
|
+
description: 'Persist a test case to the connected product. Pass EXACTLY ONE of:\n' +
|
|
580
|
+
' • `draftId` — validate and save a draft (create, or update when the draft carries an id).\n' +
|
|
581
|
+
' • `sessionId` — save a LIVE/RECENT recording by asking the /mcp-recorder window to click ' +
|
|
582
|
+
'its OWN Save button. This is the exact-parity path: the recorder editor saves the steps, ' +
|
|
583
|
+
'objects, parameters, control flow, functions, API popup values and title/module/story that ' +
|
|
584
|
+
'the user is looking at, including edits made in the window. The recorder window must be ' +
|
|
585
|
+
'open; it stays open for review after saving. Returns the created test case id + deep link.\n' +
|
|
586
|
+
'Requires a live connection (qa_connect).\n' +
|
|
572
587
|
'⚠️ CALL ONLY ON AN EXPLICIT USER SAVE INSTRUCTION (e.g. "save it", "save this", "persist it"). ' +
|
|
573
588
|
'RECORDING or AUTHORING a test case is NOT a save instruction; neither is the user approving the ' +
|
|
574
589
|
'content ("looks good", "nice"). After a recording/draft finishes, SHOW the steps and ASK — do NOT ' +
|
|
575
|
-
'auto-save. When unsure whether a reply meant save, ASK rather than saving.'
|
|
576
|
-
|
|
590
|
+
'auto-save. When unsure whether a reply meant save, ASK rather than saving. Never save a recording ' +
|
|
591
|
+
'TWICE (UI Save + tc_save): if the user already clicked Save in the recorder, treat it as done.',
|
|
592
|
+
inputSchema: {
|
|
593
|
+
draftId: z.string().optional().describe('Draft id from tc_draft_create / tc_draft_open. Omit when saving a live recording.'),
|
|
594
|
+
sessionId: z.string().optional().describe('Recording session id from core_activate_technology (or core_active_recordings). Saves via the recorder window\'s own Save button.'),
|
|
595
|
+
allowDuplicate: z.boolean().optional().describe('Set true ONLY after the user confirms they want a new test case with the same name as an existing one. Default: a new test case whose name already exists is saved as name_1, name_2, ….'),
|
|
596
|
+
},
|
|
577
597
|
annotations: { readOnlyHint: false },
|
|
578
|
-
}, async ({ draftId }) => {
|
|
598
|
+
}, async ({ draftId, sessionId, allowDuplicate }) => {
|
|
579
599
|
const adapter = deps.getAdapter?.();
|
|
580
600
|
if (!adapter) {
|
|
581
601
|
return err('Not connected to a product. Use qa_connect first — saving persists to the backend.');
|
|
582
602
|
}
|
|
603
|
+
if (!!draftId === !!sessionId) {
|
|
604
|
+
return err('Pass exactly one of draftId (save a draft) or sessionId (save a live recording via the recorder window).');
|
|
605
|
+
}
|
|
606
|
+
if (sessionId) {
|
|
607
|
+
if (!adapter.callRaw) {
|
|
608
|
+
return err('Saving a live recording needs a local recorder agent. Use qa_connect with an agent, or save a draft with draftId.');
|
|
609
|
+
}
|
|
610
|
+
let res;
|
|
611
|
+
try {
|
|
612
|
+
res = await adapter.callRaw('core_save_session', { sessionId, timeoutMs: 60000 });
|
|
613
|
+
}
|
|
614
|
+
catch (e) {
|
|
615
|
+
return err(`Recorder save failed: ${describeError(e)}`);
|
|
616
|
+
}
|
|
617
|
+
const r = res;
|
|
618
|
+
if (r?.isError)
|
|
619
|
+
return err(firstText(res));
|
|
620
|
+
const saved = r?.structuredContent?.saved;
|
|
621
|
+
const id = saved?.tcId ?? saved?.id;
|
|
622
|
+
if (id == null)
|
|
623
|
+
return err(firstText(res) || 'Recorder reported success but returned no test case id.');
|
|
624
|
+
const code = saved?.code != null ? String(saved.code) : String(id);
|
|
625
|
+
const verb = saved?.created === false ? 'Updated' : 'Created';
|
|
626
|
+
const productUrl = typeof saved?.productUrl === 'string' ? saved.productUrl : undefined;
|
|
627
|
+
const link = productUrl ? `\n${productUrl}` : '';
|
|
628
|
+
return ok(`${verb} test case ${code}.${link}`, {
|
|
629
|
+
saved: { id: String(id), ...(productUrl ? { productUrl } : {}) },
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
if (!draftId) {
|
|
633
|
+
return err('Pass exactly one of draftId or sessionId.');
|
|
634
|
+
}
|
|
583
635
|
let draft;
|
|
584
636
|
try {
|
|
585
637
|
draft = deps.drafts.get(draftId);
|
|
@@ -599,6 +651,27 @@ export function registerTestcaseTools(server, deps) {
|
|
|
599
651
|
`tc_draft_update({ draftId: "${draftId}", ops: [{ op: "set_meta", patch: { folderOrModule: "<module id>" } }] }) ` +
|
|
600
652
|
'before retrying tc_save.');
|
|
601
653
|
}
|
|
654
|
+
let renamedFrom;
|
|
655
|
+
if (isCreate && !allowDuplicate) {
|
|
656
|
+
// A name that already exists is auto-suffixed (name_1, name_2, …) rather than saved as a
|
|
657
|
+
// duplicate. Best-effort: a failed lookup must not block the save.
|
|
658
|
+
try {
|
|
659
|
+
const base = draft.tc.title.trim();
|
|
660
|
+
const hits = await adapter.listTestCases({ search: base, limit: 200 });
|
|
661
|
+
const taken = new Set(hits.map((t) => t.title.trim().toLowerCase()));
|
|
662
|
+
if (taken.has(base.toLowerCase())) {
|
|
663
|
+
let n = 1;
|
|
664
|
+
while (taken.has(`${base}_${n}`.toLowerCase()))
|
|
665
|
+
n++;
|
|
666
|
+
// Mutate the stored draft directly: applyOps would drop its recorder sessionId.
|
|
667
|
+
draft.tc = { ...draft.tc, title: `${base}_${n}` };
|
|
668
|
+
renamedFrom = base;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
catch {
|
|
672
|
+
// lookup failed — fall through to save
|
|
673
|
+
}
|
|
674
|
+
}
|
|
602
675
|
{
|
|
603
676
|
const missing = [];
|
|
604
677
|
const data = draft.tc.data ?? {};
|
|
@@ -681,7 +754,9 @@ export function registerTestcaseTools(server, deps) {
|
|
|
681
754
|
// per-save — the previous callRaw('recording_window_close', ...) had no handler anywhere and
|
|
682
755
|
// was a silently-swallowed no-op.
|
|
683
756
|
const link = saved.productUrl ? `\n${saved.productUrl}` : '';
|
|
684
|
-
return ok(`${isUpdate ? 'Updated' : 'Created'} test case ${saved.id}
|
|
757
|
+
return ok(`${isUpdate ? 'Updated' : 'Created'} test case ${saved.id}.` +
|
|
758
|
+
(renamedFrom ? ` "${renamedFrom}" already existed, so it was saved as "${draft.tc.title}".` : '') +
|
|
759
|
+
link, { saved, draftId: draft.draftId });
|
|
685
760
|
}
|
|
686
761
|
catch (e) {
|
|
687
762
|
return err(describeError(e));
|
|
@@ -761,9 +836,11 @@ export function registerTestcaseTools(server, deps) {
|
|
|
761
836
|
'5. core_close_session() — when the flow is done.\n\n' +
|
|
762
837
|
'── Save ──\n' +
|
|
763
838
|
'The recorder window streams each step as it is captured. When done, STOP and ask the user to ' +
|
|
764
|
-
'review the step cards and click Save Testcase in the recorder.
|
|
765
|
-
|
|
766
|
-
'
|
|
839
|
+
'review the step cards and click Save Testcase in the recorder. If the user explicitly asks you ' +
|
|
840
|
+
'to save from chat, call tc_save({ sessionId }) — it clicks the recorder window\'s own Save button, ' +
|
|
841
|
+
'so the edited steps are saved exactly. Either way that CREATES A NEW automated test case; the ' +
|
|
842
|
+
`source manual TC ${tcId} stays as-is.\n\n` +
|
|
843
|
+
'Do NOT call tc_save({ draftId }) / tc_draft_from_journal / update_testcase / journal_modify from MCP in this flow — the recorder UI is the persist step.';
|
|
767
844
|
return ok(guide, {
|
|
768
845
|
sourceTcId: tcId,
|
|
769
846
|
sourceTitle: source.title,
|