@yasserkhanorg/e2e-agents 1.10.1 → 1.10.2

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 (48) hide show
  1. package/README.md +116 -99
  2. package/dist/agent/config.d.ts +1 -1
  3. package/dist/agent/config.d.ts.map +1 -1
  4. package/dist/agent/config.js +6 -1
  5. package/dist/cache/cached_provider.d.ts +4 -0
  6. package/dist/cache/cached_provider.d.ts.map +1 -1
  7. package/dist/cache/cached_provider.js +3 -0
  8. package/dist/cli/commands/crew.d.ts.map +1 -1
  9. package/dist/cli/commands/crew.js +1 -0
  10. package/dist/cli/commands/init.js +5 -5
  11. package/dist/cli/commands/llm_health.d.ts.map +1 -1
  12. package/dist/cli/commands/llm_health.js +11 -67
  13. package/dist/cli/defaults.d.ts.map +1 -1
  14. package/dist/cli/defaults.js +47 -0
  15. package/dist/cli/parse_args.d.ts.map +1 -1
  16. package/dist/cli/parse_args.js +3 -1
  17. package/dist/cli/types.d.ts +1 -0
  18. package/dist/cli/types.d.ts.map +1 -1
  19. package/dist/cli/usage.d.ts.map +1 -1
  20. package/dist/cli/usage.js +28 -18
  21. package/dist/cli.js +5 -1
  22. package/dist/esm/agent/config.js +6 -1
  23. package/dist/esm/cache/cached_provider.js +3 -0
  24. package/dist/esm/cli/commands/crew.js +1 -0
  25. package/dist/esm/cli/commands/init.js +5 -5
  26. package/dist/esm/cli/commands/llm_health.js +11 -67
  27. package/dist/esm/cli/defaults.js +47 -0
  28. package/dist/esm/cli/parse_args.js +3 -1
  29. package/dist/esm/cli/usage.js +28 -18
  30. package/dist/esm/cli.js +5 -1
  31. package/dist/esm/prompts/coverage.js +2 -2
  32. package/dist/esm/prompts/cross-impact.js +1 -1
  33. package/dist/esm/prompts/generation.js +4 -4
  34. package/dist/esm/prompts/heal.js +4 -4
  35. package/dist/esm/prompts/impact.js +1 -1
  36. package/dist/esm/prompts/test-designer.js +1 -1
  37. package/dist/esm/provider_factory.js +17 -0
  38. package/dist/prompts/coverage.js +2 -2
  39. package/dist/prompts/cross-impact.js +1 -1
  40. package/dist/prompts/generation.js +4 -4
  41. package/dist/prompts/heal.js +4 -4
  42. package/dist/prompts/impact.js +1 -1
  43. package/dist/prompts/test-designer.js +1 -1
  44. package/dist/provider_factory.d.ts.map +1 -1
  45. package/dist/provider_factory.js +17 -0
  46. package/dist/provider_interface.d.ts +7 -0
  47. package/dist/provider_interface.d.ts.map +1 -1
  48. package/package.json +2 -2
@@ -283,6 +283,23 @@ class HybridProvider {
283
283
  this.primary.resetUsageStats();
284
284
  this.fallback.resetUsageStats();
285
285
  }
286
+ async checkHealth() {
287
+ const primaryHealth = await this.primary.checkHealth();
288
+ if (primaryHealth.healthy) {
289
+ return { healthy: true, message: `${this.primary.name}: ${primaryHealth.message}` };
290
+ }
291
+ const fallbackHealth = await this.fallback.checkHealth();
292
+ if (fallbackHealth.healthy) {
293
+ return {
294
+ healthy: true,
295
+ message: `${this.primary.name} unhealthy (${primaryHealth.message}); fallback ${this.fallback.name}: ${fallbackHealth.message}`,
296
+ };
297
+ }
298
+ return {
299
+ healthy: false,
300
+ message: `${this.primary.name} unhealthy (${primaryHealth.message}); fallback ${this.fallback.name} unhealthy (${fallbackHealth.message})`,
301
+ };
302
+ }
286
303
  /**
287
304
  * Get breakdown of which provider was used for what
288
305
  */
@@ -19,7 +19,7 @@ function buildCoveragePrompt(ctx) {
19
19
  })
20
20
  .join('\n\n');
21
21
  return [
22
- `You are evaluating whether existing ${ctx.profile?.projectName || 'Mattermost'} ${ctx.profile?.testFramework || 'Playwright'} E2E tests cover the impacted flows.`,
22
+ `You are evaluating whether existing ${ctx.profile?.projectName || 'the project'} ${ctx.profile?.testFramework || 'Playwright'} E2E tests cover the impacted flows.`,
23
23
  '',
24
24
  `IMPACTED FLOWS (${ctx.flows.length}):`,
25
25
  flowsBlock,
@@ -42,7 +42,7 @@ function buildCoveragePrompt(ctx) {
42
42
  ' Wrong: "test the new isEditing state"',
43
43
  ' Right: "test editing a scheduled message while it is in pending state"',
44
44
  '- For add_scenarios, specify which existing spec file to extend in targetSpec.',
45
- `- For create_spec, suggest a path following ${ctx.profile?.projectName || 'Mattermost'} conventions.`,
45
+ `- For create_spec, suggest a path following ${ctx.profile?.projectName || 'the project'} conventions.`,
46
46
  '- Prefer adding scenarios to existing specs over creating new spec files.',
47
47
  '',
48
48
  'SEMANTIC MATCHING RULES (critical for accuracy):',
@@ -19,7 +19,7 @@ function buildCrossImpactPrompt(ctx) {
19
19
  .join('\n');
20
20
  const changedBlock = ctx.changedFiles.map((f) => (0, sanitize_js_1.sanitizeForPrompt)(f)).join('\n');
21
21
  return [
22
- `You are analyzing code changes in ${ctx.projectName || 'Mattermost'} to identify cross-family ripple effects.`,
22
+ `You are analyzing code changes in ${ctx.projectName || 'the project'} to identify cross-family ripple effects.`,
23
23
  'When a change in one route family could affect another family through shared dependencies,',
24
24
  'that is a cross-impact.',
25
25
  '',
@@ -41,7 +41,7 @@ function buildAssertionPatternsBlock(patterns) {
41
41
  }
42
42
  function buildGenerationPrompt(ctx) {
43
43
  const profile = ctx.profile;
44
- const isMM = profile ? (0, generation_profile_js_1.isMattermostProfile)(profile) : true;
44
+ const isMM = profile ? (0, generation_profile_js_1.isMattermostProfile)(profile) : false;
45
45
  const relevantClasses = resolveRelevantPageObjects(ctx.apiSurface, ctx.decision);
46
46
  const apiBlock = relevantClasses.length > 0
47
47
  ? (0, api_surface_js_1.formatApiSurfaceForPrompt)(ctx.apiSurface, relevantClasses)
@@ -57,9 +57,9 @@ function buildGenerationPrompt(ctx) {
57
57
  : `ADD scenarios to the EXISTING spec at: ${ctx.specPath}`;
58
58
  const routeFamilyTag = ctx.decision.routeFamily;
59
59
  // Build prompt based on profile
60
- const projectName = profile?.projectName || 'Mattermost';
60
+ const projectName = profile?.projectName || 'Project';
61
61
  const testFramework = profile?.testFramework || 'Playwright';
62
- const importStatement = profile?.importStatement || '@mattermost/playwright-lib';
62
+ const importStatement = profile?.importStatement || '@playwright/test';
63
63
  // API test mode prompt
64
64
  if (profile?.testMode === 'api') {
65
65
  return buildApiTestPrompt(ctx, profile, scenariosBlock, routeFamilyTag);
@@ -231,7 +231,7 @@ function parseGenerationResponse(text, expectedPath, mode, flowId, profile) {
231
231
  if (!code.includes('test(') && !code.includes('it(') && !code.includes('describe(')) {
232
232
  return null;
233
233
  }
234
- const importStatement = profile?.importStatement || '@mattermost/playwright-lib';
234
+ const importStatement = profile?.importStatement || '@playwright/test';
235
235
  // Auto-add import if missing
236
236
  if (!code.includes(importStatement)) {
237
237
  if (profile?.testMode === 'api') {
@@ -32,9 +32,9 @@ function buildHealPrompt(ctx) {
32
32
  const consoleBlock = ctx.consoleErrors && ctx.consoleErrors.length > 0
33
33
  ? `\nRecent console errors from test run:\n${ctx.consoleErrors.slice(-3).map((e) => ` - ${(0, sanitize_js_1.sanitizeForPrompt)(e)}`).join('\n')}`
34
34
  : '';
35
- const importLib = ctx.profile?.importStatement || '@mattermost/playwright-lib';
36
- const isMM = ctx.profile ? (0, generation_profile_js_1.isMattermostProfile)(ctx.profile) : true;
37
- const projectLabel = ctx.profile?.projectName || 'Mattermost';
35
+ const importLib = ctx.profile?.importStatement || '@playwright/test';
36
+ const isMM = ctx.profile ? (0, generation_profile_js_1.isMattermostProfile)(ctx.profile) : false;
37
+ const projectLabel = ctx.profile?.projectName || 'Project';
38
38
  const frameworkLabel = ctx.profile?.testFramework || 'Playwright';
39
39
  const constraints = isMM
40
40
  ? [
@@ -75,7 +75,7 @@ function buildHealPrompt(ctx) {
75
75
  * (e.g. contain test.describe, test.only, wrong imports).
76
76
  */
77
77
  function buildQualityFixPrompt(specPath, qualityIssues, profile) {
78
- const importLib = profile?.importStatement || '@mattermost/playwright-lib';
78
+ const importLib = profile?.importStatement || '@playwright/test';
79
79
  const frameworkLabel = profile?.testFramework || 'Playwright';
80
80
  return [
81
81
  `Fix quality issues in this ${frameworkLabel} spec file. Make minimal edits only.`,
@@ -28,7 +28,7 @@ function buildImpactPrompt(ctx) {
28
28
  })
29
29
  .join('\n\n');
30
30
  return [
31
- `You are analyzing code changes in ${ctx.projectName || 'Mattermost'} to identify impacted user-facing flows.`,
31
+ `You are analyzing code changes in ${ctx.projectName || 'the project'} to identify impacted user-facing flows.`,
32
32
  '',
33
33
  `ROUTE FAMILY: ${ctx.family.id}`,
34
34
  `ROUTES: ${familyRoutes}`,
@@ -29,7 +29,7 @@ function buildTestDesignerPrompt(ctx) {
29
29
  : 'None detected.';
30
30
  const categories = ctx.strategy.testCategories.join(', ');
31
31
  return [
32
- `You are a senior QA engineer designing comprehensive test cases for a ${ctx.profile?.projectName || 'Mattermost'} user flow.`,
32
+ `You are a senior QA engineer designing comprehensive test cases for a ${ctx.profile?.projectName || 'project'} user flow.`,
33
33
  '',
34
34
  `FLOW: ${ctx.flow.flowName}`,
35
35
  `Flow ID: ${ctx.flow.flowId}`,
@@ -1 +1 @@
1
- {"version":3,"file":"provider_factory.d.ts","sourceRoot":"","sources":["../src/provider_factory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKR,WAAW,EAIX,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW;IAmBlD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW;IAWtD;;;;;;;;;OASG;WACU,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;IAyElD;;;OAGG;WACU,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IASpF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;CAkC/D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,mBAAmB,GAAG,wBAAwB,CAAC,CAAC;CACrF;AAgJD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC,CAsCD"}
1
+ {"version":3,"file":"provider_factory.d.ts","sourceRoot":"","sources":["../src/provider_factory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKR,WAAW,EAIX,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW;IAmBlD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW;IAWtD;;;;;;;;;OASG;WACU,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;IAyElD;;;OAGG;WACU,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IASpF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;CAkC/D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,mBAAmB,GAAG,wBAAwB,CAAC,CAAC;CACrF;AAoKD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC,CAsCD"}
@@ -288,6 +288,23 @@ class HybridProvider {
288
288
  this.primary.resetUsageStats();
289
289
  this.fallback.resetUsageStats();
290
290
  }
291
+ async checkHealth() {
292
+ const primaryHealth = await this.primary.checkHealth();
293
+ if (primaryHealth.healthy) {
294
+ return { healthy: true, message: `${this.primary.name}: ${primaryHealth.message}` };
295
+ }
296
+ const fallbackHealth = await this.fallback.checkHealth();
297
+ if (fallbackHealth.healthy) {
298
+ return {
299
+ healthy: true,
300
+ message: `${this.primary.name} unhealthy (${primaryHealth.message}); fallback ${this.fallback.name}: ${fallbackHealth.message}`,
301
+ };
302
+ }
303
+ return {
304
+ healthy: false,
305
+ message: `${this.primary.name} unhealthy (${primaryHealth.message}); fallback ${this.fallback.name} unhealthy (${fallbackHealth.message})`,
306
+ };
307
+ }
291
308
  /**
292
309
  * Get breakdown of which provider was used for what
293
310
  */
@@ -49,6 +49,13 @@ export interface LLMProvider {
49
49
  * Reset usage statistics (typically called at start of new cycle)
50
50
  */
51
51
  resetUsageStats(): void;
52
+ /**
53
+ * Run a lightweight health probe against the provider.
54
+ */
55
+ checkHealth(): Promise<{
56
+ healthy: boolean;
57
+ message: string;
58
+ }>;
52
59
  }
53
60
  /**
54
61
  * Options for text generation
@@ -1 +1 @@
1
- {"version":3,"file":"provider_interface.d.ts","sourceRoot":"","sources":["../src/provider_interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider_interface.d.ts","sourceRoot":"","sources":["../src/provider_interface.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yasserkhanorg/e2e-agents",
3
- "version": "1.10.1",
4
- "description": "AI-powered E2E test impact analysis, generation, and healing. Analyzes code changes to identify affected Playwright tests, detects coverage gaps, and generates or repairs specs using pluggable LLM providers (Claude, OpenAI, Ollama). Includes MCP server, traceability, and CI/CD integration.",
3
+ "version": "1.10.2",
4
+ "description": "Diff-aware E2E impact analysis and coverage gating for Playwright/Cypress teams. Optional AI features can suggest, generate, and heal tests once your project has a route-families.json manifest.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/index.d.ts",