common-qa-mcp 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/adapters/factory.d.ts +17 -7
- package/dist/adapters/factory.d.ts.map +1 -1
- package/dist/adapters/factory.js +44 -7
- package/dist/adapters/factory.js.map +1 -1
- package/dist/adapters/http.d.ts +50 -0
- package/dist/adapters/http.d.ts.map +1 -0
- package/dist/adapters/http.js +108 -0
- package/dist/adapters/http.js.map +1 -0
- package/dist/adapters/remoteMcp/adapter.d.ts +16 -2
- package/dist/adapters/remoteMcp/adapter.d.ts.map +1 -1
- package/dist/adapters/remoteMcp/adapter.js +34 -5
- package/dist/adapters/remoteMcp/adapter.js.map +1 -1
- package/dist/adapters/simplifyqa/adapter.d.ts +437 -0
- package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/adapter.js +3097 -0
- package/dist/adapters/simplifyqa/adapter.js.map +1 -0
- package/dist/adapters/simplifyqa/mapper.d.ts +95 -0
- package/dist/adapters/simplifyqa/mapper.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/mapper.js +858 -0
- package/dist/adapters/simplifyqa/mapper.js.map +1 -0
- package/dist/adapters/types.d.ts +168 -5
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/walnut/adapter.d.ts +235 -0
- package/dist/adapters/walnut/adapter.d.ts.map +1 -0
- package/dist/adapters/walnut/adapter.js +1114 -0
- package/dist/adapters/walnut/adapter.js.map +1 -0
- package/dist/adapters/walnut/mapper.d.ts +30 -9
- package/dist/adapters/walnut/mapper.d.ts.map +1 -1
- package/dist/adapters/walnut/mapper.js +149 -24
- package/dist/adapters/walnut/mapper.js.map +1 -1
- package/dist/config.d.ts +38 -14
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +73 -19
- package/dist/config.js.map +1 -1
- package/dist/connection.d.ts +3 -2
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +44 -15
- package/dist/connection.js.map +1 -1
- package/dist/domain/types.d.ts +680 -5
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/drafts/store.d.ts +4 -1
- package/dist/drafts/store.d.ts.map +1 -1
- package/dist/drafts/store.js +7 -2
- package/dist/drafts/store.js.map +1 -1
- package/dist/initAgents.d.ts.map +1 -1
- package/dist/initAgents.js +48 -18
- package/dist/initAgents.js.map +1 -1
- package/dist/requestConnection.d.ts +5 -3
- package/dist/requestConnection.d.ts.map +1 -1
- package/dist/requestConnection.js +11 -5
- package/dist/requestConnection.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +47 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/backlog.tools.d.ts +13 -0
- package/dist/tools/backlog.tools.d.ts.map +1 -0
- package/dist/tools/backlog.tools.js +399 -0
- package/dist/tools/backlog.tools.js.map +1 -0
- package/dist/tools/connection.tools.js +5 -5
- package/dist/tools/connection.tools.js.map +1 -1
- package/dist/tools/defects.tools.d.ts +7 -0
- package/dist/tools/defects.tools.d.ts.map +1 -0
- package/dist/tools/defects.tools.js +82 -0
- package/dist/tools/defects.tools.js.map +1 -0
- package/dist/tools/discovery.tools.d.ts.map +1 -1
- package/dist/tools/discovery.tools.js +951 -43
- package/dist/tools/discovery.tools.js.map +1 -1
- package/dist/tools/formulas.tools.d.ts +7 -0
- package/dist/tools/formulas.tools.d.ts.map +1 -0
- package/dist/tools/formulas.tools.js +56 -0
- package/dist/tools/formulas.tools.js.map +1 -0
- package/dist/tools/heal.tools.d.ts +17 -0
- package/dist/tools/heal.tools.d.ts.map +1 -0
- package/dist/tools/heal.tools.js +76 -0
- package/dist/tools/heal.tools.js.map +1 -0
- package/dist/tools/markdown.d.ts +3 -3
- package/dist/tools/markdown.d.ts.map +1 -1
- package/dist/tools/markdown.js +89 -18
- package/dist/tools/markdown.js.map +1 -1
- package/dist/tools/objects.tools.d.ts +7 -0
- package/dist/tools/objects.tools.d.ts.map +1 -0
- package/dist/tools/objects.tools.js +201 -0
- package/dist/tools/objects.tools.js.map +1 -0
- package/dist/tools/recording.tools.d.ts.map +1 -1
- package/dist/tools/recording.tools.js +92 -12
- package/dist/tools/recording.tools.js.map +1 -1
- package/dist/tools/run.tools.d.ts.map +1 -1
- package/dist/tools/run.tools.js +464 -39
- package/dist/tools/run.tools.js.map +1 -1
- package/dist/tools/schemas.d.ts +21 -4
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +14 -1
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/storySync.tools.d.ts +66 -0
- package/dist/tools/storySync.tools.d.ts.map +1 -0
- package/dist/tools/storySync.tools.js +213 -0
- package/dist/tools/storySync.tools.js.map +1 -0
- package/dist/tools/tasks.tools.d.ts +7 -0
- package/dist/tools/tasks.tools.d.ts.map +1 -0
- package/dist/tools/tasks.tools.js +75 -0
- package/dist/tools/tasks.tools.js.map +1 -0
- package/dist/tools/testcase.tools.d.ts.map +1 -1
- package/dist/tools/testcase.tools.js +162 -101
- package/dist/tools/testcase.tools.js.map +1 -1
- package/dist/tools/testdata.tools.d.ts +7 -0
- package/dist/tools/testdata.tools.d.ts.map +1 -0
- package/dist/tools/testdata.tools.js +249 -0
- package/dist/tools/testdata.tools.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ok, err } from '../mcpResult.js';
|
|
3
|
+
import { zLocator } from './schemas.js';
|
|
4
|
+
const NOT_CONNECTED = 'Not connected to a product. Use qa_connect({ url, token, projectId }) first — listing, reading and ' +
|
|
5
|
+
'deleting objects needs a live backend connection.';
|
|
6
|
+
function describeError(e) {
|
|
7
|
+
return e instanceof Error ? e.message : String(e);
|
|
8
|
+
}
|
|
9
|
+
/** Page size used both for a caller's default single page and for each internal-pagination round trip. */
|
|
10
|
+
const OBJECT_LIST_PAGE_SIZE = 100;
|
|
11
|
+
/** Hard stop on internal pagination (object_list with no limit/offset) so a runaway project can never
|
|
12
|
+
* turn one tool call into an unbounded number of requests or an unbounded response. */
|
|
13
|
+
const OBJECT_LIST_SAFETY_CAP = 2000;
|
|
14
|
+
/** Markdown table cells: escape pipes and flatten newlines (mirrors discovery.tools.ts / markdown.ts). */
|
|
15
|
+
function escCell(v) {
|
|
16
|
+
return String(v ?? '').replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
|
|
17
|
+
}
|
|
18
|
+
export function registerObjectTools(server, deps) {
|
|
19
|
+
server.registerTool('object_create', {
|
|
20
|
+
title: 'Create a new object in the Object Repository',
|
|
21
|
+
description: 'Create a new object (a locator-bound UI element) in the shared Object Repository. `objectType` ' +
|
|
22
|
+
'(e.g. "WEB", "ANDROID") is REQUIRED and STRUCTURAL — it selects the object template and cannot ' +
|
|
23
|
+
'be changed after creation (see object_update). `locators` is the set of captured selector ' +
|
|
24
|
+
'strategies for this element. Requires a live connection (qa_connect).',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
name: z.string().min(1).describe('Display name for the object (the UI\'s "Name" column).'),
|
|
27
|
+
objectType: z.string().describe('Object type / technology, e.g. "WEB", "ANDROID", "IOS", "DESKTOP". Required, and fixed once created.'),
|
|
28
|
+
locators: z.array(zLocator).optional().describe('Captured locator strategies for this element.'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { readOnlyHint: false },
|
|
31
|
+
}, async ({ name, objectType, locators }) => {
|
|
32
|
+
const adapter = deps.getAdapter();
|
|
33
|
+
if (!adapter)
|
|
34
|
+
return err(NOT_CONNECTED);
|
|
35
|
+
try {
|
|
36
|
+
const obj = await adapter.createObject({ name, objectType, locators: locators ?? [] });
|
|
37
|
+
const link = obj.id ? ` \`${obj.id}\`` : '';
|
|
38
|
+
return ok(`Created object${link} — "${obj.name}" (${obj.objectType ?? objectType}, ${obj.locators.length} locator${obj.locators.length === 1 ? '' : 's'}).`, { object: obj });
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return err(describeError(e));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.registerTool('object_list', {
|
|
45
|
+
title: 'List / search objects in the shared Object Repository',
|
|
46
|
+
description: 'List or search objects (recorded, locator-bound UI elements) in the connected product\'s ' +
|
|
47
|
+
'shared Object Repository. Requires a live connection (qa_connect). Returns a summary — id, ' +
|
|
48
|
+
'name, object type and locator count — never full locator bags (use object_get for one in ' +
|
|
49
|
+
'full). Omit `limit`/`offset` to fetch the ENTIRE project object list (paged internally, up to ' +
|
|
50
|
+
`${OBJECT_LIST_SAFETY_CAP}); pass either one to control a single page yourself instead.`,
|
|
51
|
+
inputSchema: {
|
|
52
|
+
query: z.string().optional().describe('Free-text search over the object name / description.'),
|
|
53
|
+
pageName: z.string().optional().describe('Filter by captured page / screen name.'),
|
|
54
|
+
limit: z.number().int().positive().optional().describe('Return exactly one page of this size, starting at `offset`, instead of fetching everything.'),
|
|
55
|
+
offset: z.number().int().nonnegative().optional().describe('Result offset for a single manual page (implies a one-page fetch; default page size 100 if `limit` is omitted).'),
|
|
56
|
+
},
|
|
57
|
+
annotations: { readOnlyHint: true },
|
|
58
|
+
}, async ({ query, pageName, limit, offset }) => {
|
|
59
|
+
const adapter = deps.getAdapter();
|
|
60
|
+
if (!adapter)
|
|
61
|
+
return err(NOT_CONNECTED);
|
|
62
|
+
try {
|
|
63
|
+
const manualPaging = limit !== undefined || offset !== undefined;
|
|
64
|
+
let rows;
|
|
65
|
+
let truncated = false;
|
|
66
|
+
if (manualPaging) {
|
|
67
|
+
// Caller wants exactly one page — respect it as-is.
|
|
68
|
+
rows = await adapter.searchObjects({
|
|
69
|
+
...(query !== undefined ? { query } : {}),
|
|
70
|
+
...(pageName !== undefined ? { pageName } : {}),
|
|
71
|
+
limit: limit ?? OBJECT_LIST_PAGE_SIZE,
|
|
72
|
+
...(offset !== undefined ? { offset } : {}),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// No paging args — fetch the WHOLE project list by paging internally until a short page
|
|
77
|
+
// comes back (end of results) or the safety cap is hit.
|
|
78
|
+
rows = [];
|
|
79
|
+
let off = 0;
|
|
80
|
+
for (;;) {
|
|
81
|
+
const page = await adapter.searchObjects({
|
|
82
|
+
...(query !== undefined ? { query } : {}),
|
|
83
|
+
...(pageName !== undefined ? { pageName } : {}),
|
|
84
|
+
limit: OBJECT_LIST_PAGE_SIZE,
|
|
85
|
+
offset: off,
|
|
86
|
+
});
|
|
87
|
+
rows.push(...page);
|
|
88
|
+
if (page.length < OBJECT_LIST_PAGE_SIZE)
|
|
89
|
+
break;
|
|
90
|
+
if (rows.length >= OBJECT_LIST_SAFETY_CAP) {
|
|
91
|
+
truncated = true;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
off += OBJECT_LIST_PAGE_SIZE;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!rows.length)
|
|
98
|
+
return ok('No objects found.', { objects: [] });
|
|
99
|
+
// Summary only — full locator bags (structuredContent's biggest cost) blow past the MCP result
|
|
100
|
+
// size cap on any real-sized repository. object_get reads one object in full.
|
|
101
|
+
const summaries = rows.map((o) => ({ id: o.id, name: o.name, objectType: o.objectType, locatorCount: o.locators.length }));
|
|
102
|
+
const moreHint = manualPaging
|
|
103
|
+
? (rows.length === (limit ?? OBJECT_LIST_PAGE_SIZE) ? ' (more may exist — pass offset to page)' : '')
|
|
104
|
+
: (truncated ? ` (stopped at the ${OBJECT_LIST_SAFETY_CAP}-object safety cap — refine with \`query\`)` : '');
|
|
105
|
+
const text = `${rows.length} object${rows.length === 1 ? '' : 's'}${moreHint}:\n\n` +
|
|
106
|
+
'| id | name | type | locators |\n|---|---|---|---|\n' +
|
|
107
|
+
summaries
|
|
108
|
+
.map((o) => `| ${escCell(o.id)} | ${escCell(o.name)} | ${escCell(o.objectType ?? '-')} | ${o.locatorCount} |`)
|
|
109
|
+
.join('\n');
|
|
110
|
+
return ok(text, { objects: summaries });
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
return err(describeError(e));
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
server.registerTool('object_get', {
|
|
117
|
+
title: 'Read one object (with all its locators)',
|
|
118
|
+
description: 'Read a single object from the shared Object Repository — its name, type, and FULL locator ' +
|
|
119
|
+
'bag (every captured strategy, e.g. playwright primary + xpath fallbacks). Requires a live ' +
|
|
120
|
+
'connection (qa_connect).',
|
|
121
|
+
inputSchema: {
|
|
122
|
+
id: z.string().describe('The object id to read.'),
|
|
123
|
+
},
|
|
124
|
+
annotations: { readOnlyHint: true },
|
|
125
|
+
}, async ({ id }) => {
|
|
126
|
+
const adapter = deps.getAdapter();
|
|
127
|
+
if (!adapter)
|
|
128
|
+
return err(NOT_CONNECTED);
|
|
129
|
+
if (!adapter.getObject)
|
|
130
|
+
return err('This product does not expose object read-by-id.');
|
|
131
|
+
try {
|
|
132
|
+
const obj = await adapter.getObject(id);
|
|
133
|
+
const header = `**${obj.name}**${obj.id ? ` · ${obj.id}` : ''}${obj.objectType ? ` · ${obj.objectType}` : ''}`;
|
|
134
|
+
const body = obj.locators.length
|
|
135
|
+
? '\n\n| strategy | value |\n|---|---|\n' +
|
|
136
|
+
obj.locators.map((l) => `| ${escCell(l.name)}${l.unique ? ' (unique)' : ''} | ${escCell(l.value)} |`).join('\n')
|
|
137
|
+
: '\n\n_No locators captured._';
|
|
138
|
+
return ok(`${header}${body}`, { object: obj });
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
return err(describeError(e));
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
server.registerTool('object_update', {
|
|
145
|
+
title: 'Update an object (e.g. fix a stale locator value)',
|
|
146
|
+
description: 'Update an object in the shared Object Repository — rename it, and/or fix locator values ' +
|
|
147
|
+
'directly (e.g. a stale `data-test` attribute). `locators` UPSERTS by strategy name: an entry ' +
|
|
148
|
+
'matching an EXISTING locator name updates its value/unique in place, everything else on the ' +
|
|
149
|
+
'object is untouched, and a name with no existing match is added as a NEW locator — you do not ' +
|
|
150
|
+
"need to resupply the full locator set. The object's TYPE (technology) and TEMPLATE ID are NOT " +
|
|
151
|
+
'editable here — they are structural (they determine which attribute set is even valid) and ' +
|
|
152
|
+
'stay whatever they already are; changing either means creating a new object, not updating this ' +
|
|
153
|
+
'one. Requires a live connection (qa_connect).',
|
|
154
|
+
inputSchema: {
|
|
155
|
+
id: z.string().describe('The object id to update.'),
|
|
156
|
+
name: z.string().optional().describe('New display name for the object.'),
|
|
157
|
+
locators: z.array(zLocator).optional().describe('Locators to upsert by name, e.g. [{ name: "data-test", value: "123456" }] to fix one ' +
|
|
158
|
+
'attribute — every other locator on the object is left as-is.'),
|
|
159
|
+
},
|
|
160
|
+
annotations: { readOnlyHint: false },
|
|
161
|
+
}, async ({ id, name, locators }) => {
|
|
162
|
+
const adapter = deps.getAdapter();
|
|
163
|
+
if (!adapter)
|
|
164
|
+
return err(NOT_CONNECTED);
|
|
165
|
+
if (!adapter.updateObject)
|
|
166
|
+
return err('This product does not support updating objects directly.');
|
|
167
|
+
try {
|
|
168
|
+
const obj = await adapter.updateObject(id, {
|
|
169
|
+
...(name !== undefined ? { name } : {}),
|
|
170
|
+
...(locators !== undefined ? { locators } : {}),
|
|
171
|
+
});
|
|
172
|
+
return ok(`Updated object ${obj.id ?? id} — "${obj.name}" (${obj.locators.length} locator${obj.locators.length === 1 ? '' : 's'}).`, { object: obj });
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
return err(describeError(e));
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
server.registerTool('object_delete', {
|
|
179
|
+
title: 'Delete an object from the Object Repository',
|
|
180
|
+
description: 'Delete an object from the shared Object Repository. DEPENDENCY-CHECKED first: if the object ' +
|
|
181
|
+
'is still referenced by any test case, function, or workflow, the delete is REFUSED — it ' +
|
|
182
|
+
'reports what still uses it instead of silently breaking those. Only a dependency-free object ' +
|
|
183
|
+
'is actually deleted. Requires a live connection (qa_connect).',
|
|
184
|
+
inputSchema: {
|
|
185
|
+
id: z.string().describe('The object id to delete.'),
|
|
186
|
+
},
|
|
187
|
+
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
188
|
+
}, async ({ id }) => {
|
|
189
|
+
const adapter = deps.getAdapter();
|
|
190
|
+
if (!adapter)
|
|
191
|
+
return err(NOT_CONNECTED);
|
|
192
|
+
try {
|
|
193
|
+
await adapter.deleteObject(id);
|
|
194
|
+
return ok(`Deleted object ${id}.`);
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
return err(describeError(e));
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=objects.tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.tools.js","sourceRoot":"","sources":["../../src/tools/objects.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.tools.d.ts","sourceRoot":"","sources":["../../src/tools/recording.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"recording.tools.d.ts","sourceRoot":"","sources":["../../src/tools/recording.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAoNrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B;;8FAE0F;IAC1F,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B;2DACuD;IACvD,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAgH9F"}
|
|
@@ -41,7 +41,36 @@ const TECHNOLOGY_SUBAGENTS = new Set(['web', 'android', 'mainframe', 'db']);
|
|
|
41
41
|
* Keep this in lockstep with the recorders in TECHNOLOGY_SUBAGENTS that are non-blocking. `android`
|
|
42
42
|
* and `db` are absent because they are still declared scaffolds with no delegated loop to poll.
|
|
43
43
|
*/
|
|
44
|
-
const DELEGATED_STATUS_TOOLS = new Set(['web_status', 'mainframe_status']);
|
|
44
|
+
const DELEGATED_STATUS_TOOLS = new Set(['web_status', 'mainframe_status', 'android_status']);
|
|
45
|
+
/**
|
|
46
|
+
* Read-only ENVIRONMENT-DISCOVERY tools a sub-agent exposes so the client can answer "what can I
|
|
47
|
+
* record against?" before it records. Proxied verbatim (no draft bridge — they return no test case).
|
|
48
|
+
*
|
|
49
|
+
* `android_devices` is the first, and it is not optional convenience: `android({ packageName })`
|
|
50
|
+
* requires an exact package id (`in.redbus.android`), which is derivable from nothing — not from the
|
|
51
|
+
* app's display name, and not from the user, who does not know it either. Without this tool in the
|
|
52
|
+
* filter the model has a required argument it cannot obtain, which is how the mainframe `appPath`
|
|
53
|
+
* failure started. Web and mainframe need no equivalent: a browser takes a URL the user already has,
|
|
54
|
+
* and an emulator session file is a path they can point at.
|
|
55
|
+
*/
|
|
56
|
+
const DISCOVERY_TOOLS = new Set(['android_devices']);
|
|
57
|
+
/**
|
|
58
|
+
* Control tools for an IN-FLIGHT delegated recording: pause it, carry on, or abandon it. Proxied
|
|
59
|
+
* VERBATIM — no draft bridge, deliberately. A pause returns the steps so far for REVIEW, not a
|
|
60
|
+
* saveable draft; re-homing a partial into Common's DraftStore would invite saving a half-finished
|
|
61
|
+
* recording, which the "never auto-save" rule exists to prevent. The real draft still arrives the
|
|
62
|
+
* usual way, at `*_status` "done".
|
|
63
|
+
*
|
|
64
|
+
* Without these on the client surface a recording can be STARTED but never stopped: the only escape
|
|
65
|
+
* from one that has gone wrong is restarting the agent, which drops every other session with it.
|
|
66
|
+
*
|
|
67
|
+
* Additive, like every set above it — an agent that does not advertise these simply never matches.
|
|
68
|
+
*/
|
|
69
|
+
const RECORDING_CONTROL_TOOLS = new Set([
|
|
70
|
+
'android_recording_stop', 'android_recording_resume', 'android_recording_discard',
|
|
71
|
+
'web_recording_stop', 'web_recording_resume', 'web_recording_discard',
|
|
72
|
+
'mainframe_recording_stop', 'mainframe_recording_resume', 'mainframe_recording_discard',
|
|
73
|
+
]);
|
|
45
74
|
/** Permissive input: accept any object; the product MCP is the strict validator. */
|
|
46
75
|
const PASSTHROUGH_INPUT = z.record(z.string(), z.unknown());
|
|
47
76
|
/**
|
|
@@ -65,7 +94,7 @@ const DELEGATED_RECORDERS = {
|
|
|
65
94
|
startNote: 'NON-BLOCKING: this STARTS the delegated web recording on the agent and returns a sessionId ' +
|
|
66
95
|
'immediately — a browser opens and records in the background. Then poll web_status({ sessionId }) ' +
|
|
67
96
|
'until status is "done"; web_status re-homes the draft HERE and returns a Common draftId that ' +
|
|
68
|
-
'tc_save can persist. Call web ONCE — do not retry it.',
|
|
97
|
+
'tc_save can persist. POLL EVERY ~15-20 SECONDS, never minutes: the recording takes MINUTES end to end, but that is its DURATION, not the poll interval, and waiting minutes between polls leaves a finished draft sitting uncollected. Call web ONCE — do not retry it.',
|
|
69
98
|
doneLabel: 'Web recording complete.',
|
|
70
99
|
},
|
|
71
100
|
mainframe: {
|
|
@@ -84,10 +113,37 @@ const DELEGATED_RECORDERS = {
|
|
|
84
113
|
startNote: 'NON-BLOCKING: this STARTS the delegated mainframe recording on the agent and returns a sessionId ' +
|
|
85
114
|
'immediately — the emulator opens and records in the background. Then poll ' +
|
|
86
115
|
'mainframe_status({ sessionId }) until status is "done"; mainframe_status re-homes the draft HERE ' +
|
|
87
|
-
'and returns a Common draftId that tc_save can persist. Call mainframe ONCE — do not
|
|
116
|
+
'and returns a Common draftId that tc_save can persist. POLL EVERY ~15-20 SECONDS, never minutes: the recording takes MINUTES end to end, but that is its DURATION, not the poll interval, and waiting minutes between polls leaves a finished draft sitting uncollected. Call mainframe ONCE — do not ' +
|
|
117
|
+
'retry it: ' +
|
|
88
118
|
'the HLLAPI session admits one attachment, so mainframe recordings cannot overlap.',
|
|
89
119
|
doneLabel: 'Mainframe recording complete.',
|
|
90
120
|
},
|
|
121
|
+
android: {
|
|
122
|
+
statusTool: 'android_status',
|
|
123
|
+
extraInput: {
|
|
124
|
+
packageName: z.string().describe('The app under test, e.g. "com.example.app". Launched before recording and becomes the ' +
|
|
125
|
+
'"Launch App ${app_package}" step 1, so the test case replays from cold.'),
|
|
126
|
+
deviceId: z.string().optional().describe('udid of the target device from `adb devices` (e.g. "emulator-5554", "R58M12ABCDE"). OMIT when ' +
|
|
127
|
+
'exactly one device is connected — it is auto-selected and reported back. With SEVERAL ' +
|
|
128
|
+
'connected the call is refused and the udids are listed: ASK THE USER which device to record ' +
|
|
129
|
+
'on. Never pick one yourself — recording on the wrong device does not fail, it silently ' +
|
|
130
|
+
'produces a test case against the wrong handset.'),
|
|
131
|
+
activityName: z.string().optional().describe('Optional launch activity. OMIT IT — the agent reads the app\'s launcher activity off the device ' +
|
|
132
|
+
'and records it, so the saved test case launches explicitly rather than relying on a default. ' +
|
|
133
|
+
'Pass one only to launch a specific non-default entry point.'),
|
|
134
|
+
action: z.enum(['start', 'reset']).optional().describe('"start" (default) launches the app as-is; "reset" clears its data first, for a clean-state flow.'),
|
|
135
|
+
},
|
|
136
|
+
taskDescribe: 'The GOAL in natural language, e.g. "Sign in as admin/admin123, search for \'Acme\' and open the ' +
|
|
137
|
+
'first result." Include the real values the app needs — they are parameterized at assembly time.',
|
|
138
|
+
startNote: 'NON-BLOCKING: this STARTS the delegated android recording on the agent and returns a sessionId ' +
|
|
139
|
+
'immediately — the device attaches over ADB and records in the background. Then poll ' +
|
|
140
|
+
'android_status({ sessionId }) until status is "done"; android_status re-homes the draft HERE and ' +
|
|
141
|
+
'returns a Common draftId that tc_save can persist. POLL EVERY ~15-20 SECONDS, never minutes: the recording takes MINUTES end to end, but that is its DURATION, not the poll interval, and waiting minutes between polls leaves a finished draft sitting uncollected. Call android ONCE — do not retry ' +
|
|
142
|
+
'it: the ' +
|
|
143
|
+
'device is claimed for the recording, so a second call on the same udid is refused. Recordings ' +
|
|
144
|
+
'on DIFFERENT devices can run at the same time.',
|
|
145
|
+
doneLabel: 'Android recording complete.',
|
|
146
|
+
},
|
|
91
147
|
};
|
|
92
148
|
/**
|
|
93
149
|
* Convert a product tool's JSON-Schema (object schema) into a Zod raw shape, so the PROXIED tool
|
|
@@ -147,9 +203,17 @@ export function registerRecordingPassthrough(server, deps) {
|
|
|
147
203
|
// Common connection can report "connected" (config present) BEFORE the product MCP's OWN connection
|
|
148
204
|
// is primed, so a single call races it, returns nothing, and the web/android/... tools never appear
|
|
149
205
|
// for the whole session (observed after a client reload). The first attempt also nudges the prime.
|
|
150
|
-
// Poll until
|
|
206
|
+
// Poll until the downstream advertises tools. This is NOT a one-shot 30s window: the agent
|
|
207
|
+
// (Electron :4050) is frequently started AFTER this MCP server, and a one-shot discovery that
|
|
208
|
+
// misses that window left web/mainframe/... unregistered for the WHOLE session until the user
|
|
209
|
+
// restarted common-mcp (the classic startup race). Instead we retry with backoff (500ms → 10s cap)
|
|
210
|
+
// for a generous window, so the recording surface SELF-HEALS whenever the agent primes. The
|
|
211
|
+
// registration below emits `tools/list_changed`, so a late discovery still reaches the client with
|
|
212
|
+
// no reconnect. Bounded (not eternal) so a truly-absent agent eventually stops polling.
|
|
151
213
|
let tools = [];
|
|
152
|
-
const deadline = Date.now() +
|
|
214
|
+
const deadline = Date.now() + 10 * 60000; // ~10 min — covers "agent started shortly after common-mcp"
|
|
215
|
+
let delay = 500;
|
|
216
|
+
let announcedWait = false;
|
|
153
217
|
while (Date.now() < deadline) {
|
|
154
218
|
try {
|
|
155
219
|
const a = deps.getAdapter();
|
|
@@ -160,12 +224,19 @@ export function registerRecordingPassthrough(server, deps) {
|
|
|
160
224
|
}
|
|
161
225
|
}
|
|
162
226
|
catch { /* downstream not primed yet — retry */ }
|
|
163
|
-
await new Promise((r) => setTimeout(r,
|
|
227
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
228
|
+
// Surface the wait once, so a genuinely-down agent is diagnosable (not silently spinning).
|
|
229
|
+
if (!announcedWait && delay >= 10000) {
|
|
230
|
+
announcedWait = true;
|
|
231
|
+
log('recording passthrough: still waiting for the product agent to advertise its tools (will keep retrying)…');
|
|
232
|
+
}
|
|
233
|
+
delay = Math.min(Math.round(delay * 1.5), 10000);
|
|
164
234
|
}
|
|
165
235
|
if (!tools.length) {
|
|
166
|
-
log('recording passthrough: no agent tools discovered
|
|
236
|
+
log('recording passthrough: no agent tools discovered within ~10min — the product agent never advertised any this session. Start the agent, then reconnect the MCP.');
|
|
167
237
|
return;
|
|
168
238
|
}
|
|
239
|
+
log(`recording passthrough: discovered ${tools.length} agent tool(s); registering the recording surface (emits tools/list_changed).`);
|
|
169
240
|
// SimplifyQA-only behavior below (granular-verb proxying + real-schema preservation). Walnut keeps
|
|
170
241
|
// its EXACT prior surface, so this cannot affect Walnut. Evaluated once the connection is live.
|
|
171
242
|
const simplifyqa = deps.isSimplifyqa();
|
|
@@ -189,7 +260,9 @@ export function registerRecordingPassthrough(server, deps) {
|
|
|
189
260
|
// Walnut's single tool is exactly `web` (no underscore) and its internals use browser_/…
|
|
190
261
|
const isSubAgent = TECHNOLOGY_SUBAGENTS.has(t.name)
|
|
191
262
|
|| t.name === 'qa_technology_status'
|
|
192
|
-
|| DELEGATED_STATUS_TOOLS.has(t.name)
|
|
263
|
+
|| DELEGATED_STATUS_TOOLS.has(t.name)
|
|
264
|
+
|| DISCOVERY_TOOLS.has(t.name)
|
|
265
|
+
|| RECORDING_CONTROL_TOOLS.has(t.name);
|
|
193
266
|
const isRecorderVerb = simplifyqa; // SimplifyQA: every remaining (non-provider-op) tool — agent-driven
|
|
194
267
|
if (!isSubAgent && !isRecorderVerb)
|
|
195
268
|
continue;
|
|
@@ -312,7 +385,8 @@ function registerDelegatedStatus(server, deps, t, cfg) {
|
|
|
312
385
|
const starter = t.name.replace(/_status$/, '');
|
|
313
386
|
server.registerTool(t.name, {
|
|
314
387
|
description: `${t.description ?? t.name}\n\n(Poll a recording started by ${starter}(). While it reports ` +
|
|
315
|
-
`"recording",
|
|
388
|
+
`"recording", call it again after ~15-20 SECONDS — never minutes, since the recording's MINUTES-long ` +
|
|
389
|
+
`DURATION is not a poll interval. On "done" this re-homes the assembled draft into Common's store and ` +
|
|
316
390
|
`returns a Common draftId — review the steps, then tc_save({ draftId }) to persist.)`,
|
|
317
391
|
inputSchema: { sessionId: z.string().describe(`The sessionId returned by ${starter}().`) },
|
|
318
392
|
annotations: { readOnlyHint: true },
|
|
@@ -332,12 +406,18 @@ function registerDelegatedStatus(server, deps, t, cfg) {
|
|
|
332
406
|
const sc = res.structuredContent;
|
|
333
407
|
if (sc?.status !== 'done' || !sc.tc)
|
|
334
408
|
return res; // still recording → forward as-is
|
|
335
|
-
|
|
409
|
+
// Tag the draft with its recording sessionId (the one polled with, or echoed back) so tc_save can
|
|
410
|
+
// close this recording's live-steps window on the agent once it's saved through the MCP path.
|
|
411
|
+
const recSessionId = (typeof args.sessionId === 'string' ? args.sessionId : undefined)
|
|
412
|
+
?? sc.sessionId;
|
|
413
|
+
const draftId = deps.drafts.create(sc.tc, recSessionId);
|
|
336
414
|
const stored = deps.drafts.get(draftId).tc;
|
|
337
415
|
const stepCount = Array.isArray(stored.steps) ? stored.steps.length : (sc.stepCount ?? 0);
|
|
338
416
|
return ok(`${sc.summary ?? cfg.doneLabel}\n\nRegistered as draft ${draftId} ` +
|
|
339
|
-
`(${stepCount} step${stepCount === 1 ? '' : 's'}).
|
|
340
|
-
`
|
|
417
|
+
`(${stepCount} step${stepCount === 1 ? '' : 's'}). This is an UNSAVED draft — SHOW these steps ` +
|
|
418
|
+
`to the user and ASK whether to save. Do NOT save automatically: finishing a recording is NOT a ` +
|
|
419
|
+
`save instruction. Call tc_save({ draftId: "${draftId}" }) ONLY after the user EXPLICITLY says to ` +
|
|
420
|
+
`save (e.g. "save it"). The user may also save it themselves in the product UI.`, { status: 'done', draftId, tc: stored, stepCount, ...(sc.summary ? { summary: sc.summary } : {}) });
|
|
341
421
|
});
|
|
342
422
|
}
|
|
343
423
|
/**
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.tools.d.ts","sourceRoot":"","sources":["../../src/tools/run.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;CAC1C,CAAC;
|
|
1
|
+
{"version":3,"file":"run.tools.d.ts","sourceRoot":"","sources":["../../src/tools/run.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;CAC1C,CAAC;AAkGF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CA4nB5E"}
|