common-qa-mcp 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/adapters/remoteMcp/adapter.js +1 -1
  2. package/dist/adapters/simplifyqa/adapter.d.ts +29 -0
  3. package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -1
  4. package/dist/adapters/simplifyqa/adapter.js +143 -17
  5. package/dist/adapters/simplifyqa/adapter.js.map +1 -1
  6. package/dist/adapters/simplifyqa/executionFailures.d.ts +59 -0
  7. package/dist/adapters/simplifyqa/executionFailures.d.ts.map +1 -0
  8. package/dist/adapters/simplifyqa/executionFailures.js +638 -0
  9. package/dist/adapters/simplifyqa/executionFailures.js.map +1 -0
  10. package/dist/adapters/simplifyqa/failureCategory.d.ts +26 -0
  11. package/dist/adapters/simplifyqa/failureCategory.d.ts.map +1 -0
  12. package/dist/adapters/simplifyqa/failureCategory.js +208 -0
  13. package/dist/adapters/simplifyqa/failureCategory.js.map +1 -0
  14. package/dist/adapters/simplifyqa/failureReport.d.ts +50 -0
  15. package/dist/adapters/simplifyqa/failureReport.d.ts.map +1 -0
  16. package/dist/adapters/simplifyqa/failureReport.js +353 -0
  17. package/dist/adapters/simplifyqa/failureReport.js.map +1 -0
  18. package/dist/adapters/simplifyqa/failureTypes.d.ts +193 -0
  19. package/dist/adapters/simplifyqa/failureTypes.d.ts.map +1 -0
  20. package/dist/adapters/simplifyqa/failureTypes.js +8 -0
  21. package/dist/adapters/simplifyqa/failureTypes.js.map +1 -0
  22. package/dist/adapters/simplifyqa/flow.d.ts +55 -0
  23. package/dist/adapters/simplifyqa/flow.d.ts.map +1 -0
  24. package/dist/adapters/simplifyqa/flow.js +325 -0
  25. package/dist/adapters/simplifyqa/flow.js.map +1 -0
  26. package/dist/adapters/simplifyqa/mapLimit.d.ts +3 -0
  27. package/dist/adapters/simplifyqa/mapLimit.d.ts.map +1 -0
  28. package/dist/adapters/simplifyqa/mapLimit.js +14 -0
  29. package/dist/adapters/simplifyqa/mapLimit.js.map +1 -0
  30. package/dist/adapters/simplifyqa/mapper.d.ts +3 -0
  31. package/dist/adapters/simplifyqa/mapper.d.ts.map +1 -1
  32. package/dist/adapters/simplifyqa/mapper.js +6 -7
  33. package/dist/adapters/simplifyqa/mapper.js.map +1 -1
  34. package/dist/adapters/simplifyqa/planTree.d.ts +31 -0
  35. package/dist/adapters/simplifyqa/planTree.d.ts.map +1 -0
  36. package/dist/adapters/simplifyqa/planTree.js +110 -0
  37. package/dist/adapters/simplifyqa/planTree.js.map +1 -0
  38. package/dist/adapters/simplifyqa/searchEngine.d.ts +237 -0
  39. package/dist/adapters/simplifyqa/searchEngine.d.ts.map +1 -0
  40. package/dist/adapters/simplifyqa/searchEngine.js +1206 -0
  41. package/dist/adapters/simplifyqa/searchEngine.js.map +1 -0
  42. package/dist/adapters/simplifyqa/searchRegistry.d.ts +112 -0
  43. package/dist/adapters/simplifyqa/searchRegistry.d.ts.map +1 -0
  44. package/dist/adapters/simplifyqa/searchRegistry.js +1413 -0
  45. package/dist/adapters/simplifyqa/searchRegistry.js.map +1 -0
  46. package/dist/adapters/simplifyqa/searchResolve.d.ts +84 -0
  47. package/dist/adapters/simplifyqa/searchResolve.d.ts.map +1 -0
  48. package/dist/adapters/simplifyqa/searchResolve.js +319 -0
  49. package/dist/adapters/simplifyqa/searchResolve.js.map +1 -0
  50. package/dist/adapters/simplifyqa/stepRules.d.ts +91 -0
  51. package/dist/adapters/simplifyqa/stepRules.d.ts.map +1 -0
  52. package/dist/adapters/simplifyqa/stepRules.js +228 -0
  53. package/dist/adapters/simplifyqa/stepRules.js.map +1 -0
  54. package/dist/domain/types.d.ts +4 -2
  55. package/dist/domain/types.d.ts.map +1 -1
  56. package/dist/initAgents.d.ts.map +1 -1
  57. package/dist/initAgents.js +32 -9
  58. package/dist/initAgents.js.map +1 -1
  59. package/dist/mcpResult.d.ts +19 -0
  60. package/dist/mcpResult.d.ts.map +1 -1
  61. package/dist/mcpResult.js +11 -0
  62. package/dist/mcpResult.js.map +1 -1
  63. package/dist/server.d.ts.map +1 -1
  64. package/dist/server.js +70 -16
  65. package/dist/server.js.map +1 -1
  66. package/dist/tools/discovery.tools.d.ts.map +1 -1
  67. package/dist/tools/discovery.tools.js +36 -10
  68. package/dist/tools/discovery.tools.js.map +1 -1
  69. package/dist/tools/failure.tools.d.ts +14 -0
  70. package/dist/tools/failure.tools.d.ts.map +1 -0
  71. package/dist/tools/failure.tools.js +65 -0
  72. package/dist/tools/failure.tools.js.map +1 -0
  73. package/dist/tools/query.tools.d.ts +20 -0
  74. package/dist/tools/query.tools.d.ts.map +1 -0
  75. package/dist/tools/query.tools.js +310 -0
  76. package/dist/tools/query.tools.js.map +1 -0
  77. package/dist/tools/testcase.tools.d.ts.map +1 -1
  78. package/dist/tools/testcase.tools.js +1 -2
  79. package/dist/tools/testcase.tools.js.map +1 -1
  80. package/package.json +1 -1
@@ -38,7 +38,7 @@ export class RemoteMcpAdapter {
38
38
  async client() {
39
39
  if (!this.clientPromise) {
40
40
  this.clientPromise = (async () => {
41
- const client = new Client({ name: 'common-qa-mcp', version: '0.12.0' });
41
+ const client = new Client({ name: 'common-qa-mcp', version: '0.13.0' });
42
42
  // The `as Transport` cast bridges exactOptionalPropertyTypes: StreamableHTTPClientTransport
43
43
  // implements Transport, but the SDK's own .d.ts (built without EOPT) leaves its optional
44
44
  // callbacks (onclose?/onerror?/onmessage?) without `| undefined`, which this project's EOPT
@@ -2,6 +2,7 @@ import type { ConnectedQaConfig } from '../../config.js';
2
2
  import type { MakeClientOptions } from '../http.js';
3
3
  import type { ListResult, ProjectInfo } from '../types.js';
4
4
  import type { ActionDef, CloudRunner, CopyTestdataResult, DatasetInfo, DefaultIteration, DefectQuery, DefectSummary, EntityRef, EnvInfo, Epic, EpicInput, EpicQuery, EpicSummary, EpicUpdate, Feature, FeatureInput, FeatureQuery, FeatureSummary, FeatureUpdate, Formula, FormulaCall, FunctionQuery, FunctionSummary, QaFunction, JournalOp, JournalView, LocalAgent, Locator, MemberOp, MobileDevice, ModuleCreateInput, ModuleDeleteResult, ModuleDetail, ModuleSaved, ModuleSummary, ModuleUpdateInput, ObjectQuery, ProjectSummary, QaObject, ReleaseQuery, ReleaseSummary, RunOptions, RunRef, RunStatus, RunTarget, SaveGeneratedIterations, SaveGeneratedIterationsResult, SavedRef, SprintQuery, SprintSummary, BacklogDeleteResult, BacklogKind, ReportFile, ReportKind, Story, StoryInput, StoryQuery, StorySummary, StoryUpdate, Suite, SuiteSummary, TaskQuery, TaskSummary, TcQuery, TcSummary, TestCase, UserQuery, UserSummary, VersionDeleteInput, VersionDeleteResult } from '../../domain/types.js';
5
+ import { type SqaQueryRequest, type SqaQueryResult } from './searchEngine.js';
5
6
  /** Test seam identical to WalnutAdapter's — swap transport, keep real headers. */
6
7
  export type SimplifyQaTransport = Pick<MakeClientOptions, 'fetchImpl' | 'FormDataImpl' | 'BlobImpl'>;
7
8
  /**
@@ -22,6 +23,7 @@ export declare class SimplifyQaAdapter {
22
23
  private readonly http;
23
24
  private agentHop;
24
25
  private formulaCache;
26
+ private sqaEngine;
25
27
  private backlogDefaultsCache;
26
28
  constructor(cfg: ConnectedQaConfig, transport?: SimplifyQaTransport);
27
29
  private headers;
@@ -35,7 +37,21 @@ export declare class SimplifyQaAdapter {
35
37
  userId?: string;
36
38
  };
37
39
  private requireProjectId;
40
+ /** A search payload. Soft-deleted rows are ALWAYS excluded, as the AI assistant's reads do:
41
+ * `deleted:false` is set here and a caller's own `deleted` entry is dropped, never sent. */
38
42
  private searchBody;
43
+ private engine;
44
+ /**
45
+ * ONE generic read surface over every SQA collection. Backs the `sqa_query` tool:
46
+ * catalog -> collections, fields, relations, descriptions
47
+ * custom_fields -> custom fields for a collection (label -> key -> customFields.<key>)
48
+ * search -> compiled searchFields + rows
49
+ * get -> one row, optionally expanding steps/versions/members
50
+ * related -> follow a relation (story -> testcases, testcase -> defects, ...)
51
+ *
52
+ * Always injects `deleted:false` and the active project; never exposes deleted rows.
53
+ */
54
+ sqaQuery(req: SqaQueryRequest): Promise<SqaQueryResult>;
39
55
  /** Validates baseUrl + token + (optional) project by running the same list_projects search the
40
56
  * Java `infoResult` uses to resolve the project name — no separate /info endpoint on SQA.
41
57
  * `counts` is a best-effort row count per entity type (test cases/suites/stories/objects), read
@@ -531,6 +547,19 @@ export declare class SimplifyQaAdapter {
531
547
  versionId?: string | undefined;
532
548
  stepId?: string | undefined;
533
549
  }): Promise<RunStatus>;
550
+ /** Whole-execution failure analysis (executionFailures.ts) for TC-123 / SU-123 / PL-123 or one
551
+ * named execution. */
552
+ getExecutionFailures(input: import('./failureTypes.js').ExecutionFailureInput): Promise<import('./failureTypes.js').ExecutionFailureContext>;
553
+ /** A failure screenshot as base64 (see executionFailures.fetchFailureImage). */
554
+ fetchFailureImage(absoluteUrl: string, maxBytes: number): Promise<{
555
+ data: string;
556
+ mimeType: string;
557
+ } | null>;
558
+ /** The failure-analysis card + evidence text and the top causes' screenshots (failureReport.ts). */
559
+ getFailureReport(input: import('./failureTypes.js').ExecutionFailureInput & {
560
+ includeImages?: boolean;
561
+ }): Promise<import('./failureReport.js').FailureReport>;
562
+ private baseUrl;
534
563
  /** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
535
564
  * current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
536
565
  * limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/simplifyqa/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/simplifyqa/adapter.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,11 @@ import { mkdir, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { makeClient } from '../http.js';
5
5
  import { RemoteMcpAdapter } from '../remoteMcp/adapter.js';
6
- import { applyCollectionSteps, buildTestcasePayload, deriveTcType, extractApiParamNames, extractParamNames, fromSqaStep, looksSensitive, normalizeSuiteEntry, numericId, paramDefault, pickArray, str, SUITE_UPDATE_ALLOWED_KEYS, TECH_BY_STEPTYPE, toDefectSummary, toEpic, toEpicSummary, toFeature, toFeatureSummary, toFunction, toFunctionSummary, toModuleSaved, toModuleSummary, toObject, toImageUrl, toReleaseSummary, toSavedRef, toSprintSummary, toStory, toStorySummary, toSuite, toSuiteSummary, toTaskSummary, toTcSummary, toTestCase, toVersionEntries, withTotal, } from './mapper.js';
6
+ import { resolveValuesFromEnv, SqaSearchEngine } from './searchEngine.js';
7
+ import { resolveCollection } from './searchRegistry.js';
8
+ import { ExecutionFailureAnalysis, fetchFailureImage } from './executionFailures.js';
9
+ import { failureImages, renderExecution } from './failureReport.js';
10
+ import { applyCollectionSteps, buildTestcasePayload, deriveTcType, extractApiParamNames, extractParamNames, fromSqaStep, looksSensitive, normalizeSuiteEntry, notDeleted, numericId, paramDefault, pickArray, str, SUITE_UPDATE_ALLOWED_KEYS, TECH_BY_STEPTYPE, toDefectSummary, toEpic, toEpicSummary, toFeature, toFeatureSummary, toFunction, toFunctionSummary, toModuleSaved, toModuleSummary, toObject, toImageUrl, toReleaseSummary, toSavedRef, toSprintSummary, toStory, toStorySummary, toSuite, toSuiteSummary, toTaskSummary, toTcSummary, toTestCase, toVersionEntries, withTotal, } from './mapper.js';
7
11
  /** SQA run-row status → neutral RunStatus.state. */
8
12
  function mapRunState(s) {
9
13
  switch (s.toUpperCase()) {
@@ -222,6 +226,9 @@ export class SimplifyQaAdapter {
222
226
  // (from the Promise.all in saveGeneratedIterations) all await the same fetch instead of each firing
223
227
  // their own /tm/syncFormulas/fetch before the cache is populated.
224
228
  this.formulaCache = null;
229
+ // Generic collection query engine (sqa_query). One instance per adapter so the custom-field
230
+ // cache survives across calls; switchProject rebuilds the adapter, dropping the cache.
231
+ this.sqaEngine = null;
225
232
  // Same rationale for the backlog default state/priority per parentId (1=Epic, 2=Feature, 3=Story).
226
233
  // Fields config barely changes mid-session; cache the in-flight promise so parallel creates share it.
227
234
  this.backlogDefaultsCache = new Map();
@@ -283,13 +290,18 @@ export class SimplifyQaAdapter {
283
290
  }
284
291
  // Standard SQA `searchFields` payload builder — the SAME shape every /search endpoint expects.
285
292
  // Every list op below uses this instead of hand-writing the same 6-line boilerplate.
293
+ /** A search payload. Soft-deleted rows are ALWAYS excluded, as the AI assistant's reads do:
294
+ * `deleted:false` is set here and a caller's own `deleted` entry is dropped, never sent. */
286
295
  searchBody(fields, opts = {}) {
287
296
  const body = {
288
- searchFields: fields.map((f) => ({
289
- column: f.column,
290
- value: f.value,
291
- ...(f.regEx ? { regEx: true } : {}),
292
- })),
297
+ searchFields: [
298
+ { column: 'deleted', value: false },
299
+ ...fields.filter((f) => f.column !== 'deleted').map((f) => ({
300
+ column: f.column,
301
+ value: f.value,
302
+ ...(f.regEx ? { regEx: true } : {}),
303
+ })),
304
+ ],
293
305
  startIndex: opts.startIndex ?? 0,
294
306
  limit: opts.limit ?? 100,
295
307
  };
@@ -302,6 +314,80 @@ export class SimplifyQaAdapter {
302
314
  body['skipStartIndex'] = 1;
303
315
  return body;
304
316
  }
317
+ // ---------------------------------------------------------------------- Generic collection query
318
+ engine() {
319
+ if (!this.sqaEngine) {
320
+ const me = Number.parseInt(this.cfg.userId?.trim() || this.jwtUserId() || '', 10);
321
+ this.sqaEngine = new SqaSearchEngine(this.http, this.requireProjectId(), {
322
+ resolveValues: resolveValuesFromEnv(process.env),
323
+ ...(Number.isFinite(me) ? { currentUserId: me } : {}),
324
+ });
325
+ }
326
+ return this.sqaEngine;
327
+ }
328
+ /**
329
+ * ONE generic read surface over every SQA collection. Backs the `sqa_query` tool:
330
+ * catalog -> collections, fields, relations, descriptions
331
+ * custom_fields -> custom fields for a collection (label -> key -> customFields.<key>)
332
+ * search -> compiled searchFields + rows
333
+ * get -> one row, optionally expanding steps/versions/members
334
+ * related -> follow a relation (story -> testcases, testcase -> defects, ...)
335
+ *
336
+ * Always injects `deleted:false` and the active project; never exposes deleted rows.
337
+ */
338
+ async sqaQuery(req) {
339
+ switch (req.op) {
340
+ case 'catalog':
341
+ return { op: 'catalog', collections: this.engine().catalog(req.collection) };
342
+ case 'custom_fields': {
343
+ if (!req.collection)
344
+ throw new Error('`collection` is required for op:"custom_fields".');
345
+ return {
346
+ op: 'custom_fields',
347
+ collection: req.collection,
348
+ fields: await this.engine().customFields(req.collection),
349
+ };
350
+ }
351
+ case 'search':
352
+ return { op: 'search', ...(await this.engine().search(req)) };
353
+ case 'count':
354
+ return { op: 'count', ...(await this.engine().count(req)) };
355
+ case 'related': {
356
+ // Execution step results need the run UUID/step ladder, not a raw subresource GET.
357
+ const c = req.collection ? resolveCollection(req.collection) : undefined;
358
+ if (c?.name === 'executions' && req.relation === 'steps' && req.id) {
359
+ const run = await this.getRun(String(req.id));
360
+ const rows = (run.stepResults ?? []);
361
+ return {
362
+ op: 'related',
363
+ collection: 'executions',
364
+ rows,
365
+ totalCount: rows.length,
366
+ returned: rows.length,
367
+ offset: 0,
368
+ };
369
+ }
370
+ return { op: 'related', ...(await this.engine().related(req)) };
371
+ }
372
+ case 'get': {
373
+ if (!req.collection)
374
+ throw new Error('`collection` is required for op:"get".');
375
+ if (!req.id)
376
+ throw new Error('`id` is required for op:"get".');
377
+ const c = resolveCollection(req.collection);
378
+ if (!c)
379
+ throw new Error(`Unknown collection "${req.collection}".`);
380
+ // Runs need the UUID/step ladder in the existing getRun implementation, not a raw row.
381
+ if (c.name === 'executions') {
382
+ const run = await this.getRun(String(req.id));
383
+ return { op: 'get', collection: 'executions', row: run };
384
+ }
385
+ return this.engine().getWithExpand(req);
386
+ }
387
+ default:
388
+ throw new Error(`Unsupported op "${String(req.op)}".`);
389
+ }
390
+ }
305
391
  // ---------------------------------------------------------------------- Info + projects
306
392
  /** Validates baseUrl + token + (optional) project by running the same list_projects search the
307
393
  * Java `infoResult` uses to resolve the project name — no separate /info endpoint on SQA.
@@ -432,8 +518,17 @@ export class SimplifyQaAdapter {
432
518
  ];
433
519
  if (q.search)
434
520
  fields.push({ column: 'name', value: q.search, regEx: true });
435
- if (q.status)
436
- fields.push({ column: 'status', value: q.status });
521
+ // SQA test cases have NO `status`/`priority`/`stepCount` columns (checked against the backend
522
+ // fields config + live rows on 2026-10-23). Reject rather than silently return zero rows.
523
+ if (q.status) {
524
+ throw new Error('SimplifyQA test cases have no `status` field. Use `reviewApproveStatus` or a custom field ' +
525
+ '(call sqa_query({ op:"custom_fields", collection:"testcases" })).');
526
+ }
527
+ const phantom = (q.filters ?? []).find((f) => f.column === 'status' || f.column === 'priority' || f.column === 'stepCount');
528
+ if (phantom) {
529
+ throw new Error(`SimplifyQA test cases have no \`${phantom.column}\` field. Use \`reviewApproveStatus\`, ` +
530
+ 'a custom field via sqa_query, or remove this filter.');
531
+ }
437
532
  const createdBy = this.resolveUserFilter(q.createdBy);
438
533
  if (createdBy != null)
439
534
  fields.push({ column: 'createdBy', value: createdBy });
@@ -452,7 +547,8 @@ export class SimplifyQaAdapter {
452
547
  startIndex: q.offset ?? 0,
453
548
  limit: q.limit ?? 100,
454
549
  rawOffset: true,
455
- selectFields: ['id', 'code', 'name', 'priority', 'status', 'stepCount', 'tcType', 'executionType', 'obsolete'],
550
+ // No priority/status/stepCount: those columns do not exist on SQA testcase rows.
551
+ selectFields: ['id', 'code', 'name', 'tcType', 'executionType', 'obsolete'],
456
552
  });
457
553
  const raw = await this.http.postJson('/tm/testcase/search', body);
458
554
  const rows = pickArray(raw, 'data', 'content', 'testCases');
@@ -1273,7 +1369,8 @@ export class SimplifyQaAdapter {
1273
1369
  if (!isSuite) {
1274
1370
  if (input.kinds.includes('suite'))
1275
1371
  throw new Error('The suite report is only available for a suite execution; this is a test case execution.');
1276
- const runs = await this.http.getJson(`/exec/report/${execNum}/${projectId}`);
1372
+ const rawRuns = await this.http.getJson(`/exec/report/${execNum}/${projectId}`);
1373
+ const runs = Array.isArray(rawRuns) ? notDeleted(rawRuns) : rawRuns;
1277
1374
  if (!Array.isArray(runs) || runs.length === 0)
1278
1375
  throw new Error(`Execution ${input.runId} has no run results to report on.`);
1279
1376
  const chosen = pickRun(runs);
@@ -2889,8 +2986,8 @@ export class SimplifyQaAdapter {
2889
2986
  { column: 'projectId', value: projectId },
2890
2987
  ], { startIndex: 0, limit: 10 });
2891
2988
  // The `searchFields` shape supports `ignorecase:true` per-field; searchBody doesn't emit it,
2892
- // so add it inline for the name column.
2893
- body['searchFields'][0]['ignorecase'] = true;
2989
+ // so add it inline for the name column (not index 0 — searchBody puts `deleted` first).
2990
+ body['searchFields'].find((f) => f.column === 'name')['ignorecase'] = true;
2894
2991
  const raw = await this.http.postJson('/tm/parameter/search', body);
2895
2992
  const rows = pickArray(raw, 'data', 'content');
2896
2993
  for (const row of rows) {
@@ -2915,7 +3012,7 @@ export class SimplifyQaAdapter {
2915
3012
  { column: 'projectId', value: projectId },
2916
3013
  { column: 'deleted', value: false },
2917
3014
  ], { startIndex: 0, limit: 10 });
2918
- body['searchFields'][0]['ignorecase'] = true;
3015
+ body['searchFields'].find((f) => f.column === 'disname')['ignorecase'] = true;
2919
3016
  const raw = await this.http.postJson('/tm/object/search', body);
2920
3017
  const rows = pickArray(raw, 'data', 'content', 'objects');
2921
3018
  for (const row of rows) {
@@ -3712,7 +3809,9 @@ export class SimplifyQaAdapter {
3712
3809
  }
3713
3810
  }
3714
3811
  // TC path — per-step results via /exec/report + /reports/execution/getstepResult.
3715
- const runs = await this.http.getJson(`/exec/report/${runId}/${projectId}`);
3812
+ // A re-execution soft-deletes the run row it replaces; only live rows are this run's results.
3813
+ const rawRuns = await this.http.getJson(`/exec/report/${runId}/${projectId}`);
3814
+ const runs = Array.isArray(rawRuns) ? notDeleted(rawRuns) : rawRuns;
3716
3815
  if (!Array.isArray(runs) || runs.length === 0) {
3717
3816
  return { runId, state: 'queued' };
3718
3817
  }
@@ -3751,7 +3850,7 @@ export class SimplifyQaAdapter {
3751
3850
  const stepsResp = await this.http.postJson('/reports/execution/getstepResult', {
3752
3851
  executionId, executionRunId, parentId, projectId,
3753
3852
  });
3754
- const rawSteps = Array.isArray(stepsResp?.data) ? stepsResp.data : [];
3853
+ const rawSteps = Array.isArray(stepsResp?.data) ? notDeleted(stepsResp.data) : [];
3755
3854
  // Backend logs control-flow markers as INFO rows with `description: null` (see
3756
3855
  // executionStepResult.service.js insertLoopIterationStart/insertFunctionEnd/… — the same
3757
3856
  // executionRunId carries LOOP_ITERATION_START/END, FUNCTION_START/END, FUNCTION_ITERATION_*,
@@ -3839,6 +3938,33 @@ export class SimplifyQaAdapter {
3839
3938
  reportUrl: `${base}/user/reports/reports-page?type=TESTCASE&parentId=${parentId}&id=${runIdNum}&projectId=${projectId}`,
3840
3939
  };
3841
3940
  }
3941
+ /** Whole-execution failure analysis (executionFailures.ts) for TC-123 / SU-123 / PL-123 or one
3942
+ * named execution. */
3943
+ async getExecutionFailures(input) {
3944
+ return new ExecutionFailureAnalysis({
3945
+ http: this.http,
3946
+ projectId: this.requireProjectId(),
3947
+ baseUrl: this.baseUrl(),
3948
+ fetchExecDoc: (id, projectId) => this.fetchExecDoc(id, projectId),
3949
+ latestExecutionOf: (kind, id) => this.getLatestRunFor(kind, id),
3950
+ }).analyse(input);
3951
+ }
3952
+ /** A failure screenshot as base64 (see executionFailures.fetchFailureImage). */
3953
+ async fetchFailureImage(absoluteUrl, maxBytes) {
3954
+ return fetchFailureImage(this.http, this.baseUrl(), absoluteUrl, maxBytes);
3955
+ }
3956
+ /** The failure-analysis card + evidence text and the top causes' screenshots (failureReport.ts). */
3957
+ async getFailureReport(input) {
3958
+ const { includeImages, ...analysisInput } = input;
3959
+ const ctx = await this.getExecutionFailures(analysisInput);
3960
+ const images = includeImages === false || input.includeScreenshots === false
3961
+ ? []
3962
+ : await failureImages(ctx, (url, maxBytes) => this.fetchFailureImage(url, maxBytes));
3963
+ return { text: renderExecution(ctx), images };
3964
+ }
3965
+ baseUrl() {
3966
+ return (this.cfg.baseUrl ?? '').replace(/\/+$/, '');
3967
+ }
3842
3968
  /** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
3843
3969
  * current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
3844
3970
  * limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
@@ -3856,7 +3982,7 @@ export class SimplifyQaAdapter {
3856
3982
  { column: 'projectId', value: projectId, regEx: false },
3857
3983
  { column: 'childExecution', value: false },
3858
3984
  { column: 'parentExecutionCopy', value: true, operator: 'nor' },
3859
- { column: 'type', value: type, regEx: false },
3985
+ { column: 'type', value: type === 'TC' ? 'TESTCASE' : type, regEx: false },
3860
3986
  { column: 'executionTypeId', value: num, regEx: false },
3861
3987
  ],
3862
3988
  startIndex: 0,
@@ -3886,7 +4012,7 @@ export class SimplifyQaAdapter {
3886
4012
  { column: 'projectId', value: projectId, regEx: false },
3887
4013
  { column: 'childExecution', value: false },
3888
4014
  { column: 'parentExecutionCopy', value: true, operator: 'nor' },
3889
- { column: 'type', value: type, regEx: false },
4015
+ { column: 'type', value: type === 'TC' ? 'TESTCASE' : type, regEx: false },
3890
4016
  { column: 'executionTypeId', value: num, regEx: false },
3891
4017
  ],
3892
4018
  startIndex: 0,