endorphin-ai 0.9.0 → 1.0.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 (188) hide show
  1. package/README.md +149 -388
  2. package/dist/bin/cli-handlers.d.ts +1 -3
  3. package/dist/bin/cli-handlers.d.ts.map +1 -1
  4. package/dist/bin/cli-handlers.js +13 -12
  5. package/dist/bin/cli-handlers.js.map +1 -1
  6. package/dist/bin/endorphin.d.ts.map +1 -1
  7. package/dist/bin/endorphin.js +21 -28
  8. package/dist/bin/endorphin.js.map +1 -1
  9. package/dist/examples/README-ENDORPHIN.md +1 -1
  10. package/dist/examples/endorphin.config.ts +2 -6
  11. package/dist/examples/tests/MULTI-USER-001.ts +132 -0
  12. package/dist/framework/ai/agent-setup.d.ts +1 -1
  13. package/dist/framework/ai/agent-setup.d.ts.map +1 -1
  14. package/dist/framework/ai/agent-setup.js +140 -80
  15. package/dist/framework/ai/agent-setup.js.map +1 -1
  16. package/dist/framework/ai/config/agent-config.d.ts +2 -5
  17. package/dist/framework/ai/config/agent-config.d.ts.map +1 -1
  18. package/dist/framework/ai/config/agent-config.js +2 -5
  19. package/dist/framework/ai/config/agent-config.js.map +1 -1
  20. package/dist/framework/ai/validation-agent.d.ts.map +1 -1
  21. package/dist/framework/ai/validation-agent.js +10 -12
  22. package/dist/framework/ai/validation-agent.js.map +1 -1
  23. package/dist/framework/automation/browser/browser-framework.d.ts +1 -2
  24. package/dist/framework/automation/browser/browser-framework.d.ts.map +1 -1
  25. package/dist/framework/automation/browser/browser-framework.js +2 -2
  26. package/dist/framework/automation/browser/browser-framework.js.map +1 -1
  27. package/dist/framework/automation/browser/browser-manager.d.ts +35 -0
  28. package/dist/framework/automation/browser/browser-manager.d.ts.map +1 -1
  29. package/dist/framework/automation/browser/browser-manager.js +190 -4
  30. package/dist/framework/automation/browser/browser-manager.js.map +1 -1
  31. package/dist/framework/automation/engines/browser-engine.d.ts +2 -2
  32. package/dist/framework/automation/engines/browser-engine.d.ts.map +1 -1
  33. package/dist/framework/automation/engines/browser-engine.js +35 -30
  34. package/dist/framework/automation/engines/browser-engine.js.map +1 -1
  35. package/dist/framework/automation/tools/content.d.ts.map +1 -1
  36. package/dist/framework/automation/tools/content.js +6 -27
  37. package/dist/framework/automation/tools/content.js.map +1 -1
  38. package/dist/framework/automation/tools/index.d.ts +1 -2
  39. package/dist/framework/automation/tools/index.d.ts.map +1 -1
  40. package/dist/framework/automation/tools/index.js +6 -5
  41. package/dist/framework/automation/tools/index.js.map +1 -1
  42. package/dist/framework/automation/tools/interaction.d.ts +4 -4
  43. package/dist/framework/automation/tools/interaction.d.ts.map +1 -1
  44. package/dist/framework/automation/tools/interaction.js +12 -10
  45. package/dist/framework/automation/tools/interaction.js.map +1 -1
  46. package/dist/framework/automation/tools/navigation.d.ts +1 -2
  47. package/dist/framework/automation/tools/navigation.d.ts.map +1 -1
  48. package/dist/framework/automation/tools/navigation.js +1 -0
  49. package/dist/framework/automation/tools/navigation.js.map +1 -1
  50. package/dist/framework/automation/tools/verification.d.ts +54 -0
  51. package/dist/framework/automation/tools/verification.d.ts.map +1 -1
  52. package/dist/framework/automation/tools/verification.js +250 -6
  53. package/dist/framework/automation/tools/verification.js.map +1 -1
  54. package/dist/framework/cli/builtin-tools-command.d.ts.map +1 -1
  55. package/dist/framework/cli/builtin-tools-command.js +20 -2
  56. package/dist/framework/cli/builtin-tools-command.js.map +1 -1
  57. package/dist/framework/cli/init-command.d.ts.map +1 -1
  58. package/dist/framework/cli/init-command.js +38 -10
  59. package/dist/framework/cli/init-command.js.map +1 -1
  60. package/dist/framework/config/browser-config.d.ts +3 -3
  61. package/dist/framework/config/browser-config.d.ts.map +1 -1
  62. package/dist/framework/config/browser-config.js +5 -2
  63. package/dist/framework/config/browser-config.js.map +1 -1
  64. package/dist/framework/config/constants.d.ts +3 -5
  65. package/dist/framework/config/constants.d.ts.map +1 -1
  66. package/dist/framework/config/constants.js +4 -5
  67. package/dist/framework/config/constants.js.map +1 -1
  68. package/dist/framework/config/system-context.d.ts +1 -1
  69. package/dist/framework/config/system-context.d.ts.map +1 -1
  70. package/dist/framework/config/system-context.js +18 -8
  71. package/dist/framework/config/system-context.js.map +1 -1
  72. package/dist/framework/core/ci-performance.d.ts +60 -0
  73. package/dist/framework/core/ci-performance.d.ts.map +1 -0
  74. package/dist/framework/core/ci-performance.js +301 -0
  75. package/dist/framework/core/ci-performance.js.map +1 -0
  76. package/dist/framework/core/config-loader.d.ts.map +1 -1
  77. package/dist/framework/core/config-loader.js +0 -18
  78. package/dist/framework/core/config-loader.js.map +1 -1
  79. package/dist/framework/core/config-manager.d.ts.map +1 -1
  80. package/dist/framework/core/config-manager.js +2 -13
  81. package/dist/framework/core/config-manager.js.map +1 -1
  82. package/dist/framework/core/debug-manager.d.ts +1 -1
  83. package/dist/framework/core/debug-manager.d.ts.map +1 -1
  84. package/dist/framework/core/global-setup-manager.d.ts +8 -0
  85. package/dist/framework/core/global-setup-manager.d.ts.map +1 -1
  86. package/dist/framework/core/global-setup-manager.js +39 -6
  87. package/dist/framework/core/global-setup-manager.js.map +1 -1
  88. package/dist/framework/core/resource-manager.d.ts +4 -0
  89. package/dist/framework/core/resource-manager.d.ts.map +1 -1
  90. package/dist/framework/core/resource-manager.js +44 -1
  91. package/dist/framework/core/resource-manager.js.map +1 -1
  92. package/dist/framework/core/session-manager.d.ts +4 -0
  93. package/dist/framework/core/session-manager.d.ts.map +1 -1
  94. package/dist/framework/core/session-manager.js +15 -0
  95. package/dist/framework/core/session-manager.js.map +1 -1
  96. package/dist/framework/core/test-framework-di.d.ts +1 -1
  97. package/dist/framework/core/test-framework-di.d.ts.map +1 -1
  98. package/dist/framework/core/test-framework-di.js +1 -1
  99. package/dist/framework/core/test-framework-di.js.map +1 -1
  100. package/dist/framework/core/test-framework.d.ts +16 -2
  101. package/dist/framework/core/test-framework.d.ts.map +1 -1
  102. package/dist/framework/core/test-framework.js +302 -12
  103. package/dist/framework/core/test-framework.js.map +1 -1
  104. package/dist/framework/execution/discovery/cli-functions.d.ts +3 -9
  105. package/dist/framework/execution/discovery/cli-functions.d.ts.map +1 -1
  106. package/dist/framework/execution/discovery/cli-functions.js +28 -54
  107. package/dist/framework/execution/discovery/cli-functions.js.map +1 -1
  108. package/dist/framework/execution/discovery/discovery-types.d.ts +0 -3
  109. package/dist/framework/execution/discovery/discovery-types.d.ts.map +1 -1
  110. package/dist/framework/execution/discovery/test-discoverer.d.ts +4 -0
  111. package/dist/framework/execution/discovery/test-discoverer.d.ts.map +1 -1
  112. package/dist/framework/execution/discovery/test-discoverer.js +51 -22
  113. package/dist/framework/execution/discovery/test-discoverer.js.map +1 -1
  114. package/dist/framework/execution/runner/test-runner.d.ts +6 -6
  115. package/dist/framework/execution/runner/test-runner.d.ts.map +1 -1
  116. package/dist/framework/execution/runner/test-runner.js +116 -159
  117. package/dist/framework/execution/runner/test-runner.js.map +1 -1
  118. package/dist/framework/index.d.ts +1 -1
  119. package/dist/framework/index.d.ts.map +1 -1
  120. package/dist/framework/index.js +2 -1
  121. package/dist/framework/index.js.map +1 -1
  122. package/dist/framework/managers/content/snapshot-manager.d.ts +2 -4
  123. package/dist/framework/managers/content/snapshot-manager.d.ts.map +1 -1
  124. package/dist/framework/managers/content/snapshot-manager.js +15 -29
  125. package/dist/framework/managers/content/snapshot-manager.js.map +1 -1
  126. package/dist/framework/managers/system/framework-manager.d.ts +0 -1
  127. package/dist/framework/managers/system/framework-manager.d.ts.map +1 -1
  128. package/dist/framework/managers/system/framework-manager.js +0 -9
  129. package/dist/framework/managers/system/framework-manager.js.map +1 -1
  130. package/dist/framework/reporters/performance-reporter.d.ts +19 -0
  131. package/dist/framework/reporters/performance-reporter.d.ts.map +1 -0
  132. package/dist/framework/reporters/performance-reporter.js +763 -0
  133. package/dist/framework/reporters/performance-reporter.js.map +1 -0
  134. package/dist/framework/reporting/generators/html-generator.d.ts.map +1 -1
  135. package/dist/framework/reporting/generators/html-generator.js +1 -0
  136. package/dist/framework/reporting/generators/html-generator.js.map +1 -1
  137. package/dist/framework/templates/reporter/scripts.d.ts +10 -2
  138. package/dist/framework/templates/reporter/scripts.d.ts.map +1 -1
  139. package/dist/framework/templates/reporter/scripts.js +148 -12
  140. package/dist/framework/templates/reporter/scripts.js.map +1 -1
  141. package/dist/framework/templates/reporter/styles.css +112 -0
  142. package/dist/framework/test-recorder/interactive-recorder.js +1 -1
  143. package/dist/framework/test-recorder/interactive-recorder.js.map +1 -1
  144. package/dist/framework/test-recorder/session-recorder.d.ts +1 -1
  145. package/dist/framework/test-recorder/session-recorder.d.ts.map +1 -1
  146. package/dist/framework/test-recorder/session-recorder.js +6 -5
  147. package/dist/framework/test-recorder/session-recorder.js.map +1 -1
  148. package/dist/framework/types/agent.d.ts.map +1 -0
  149. package/dist/framework/types/agent.js.map +1 -0
  150. package/dist/framework/types/cli.d.ts +0 -2
  151. package/dist/framework/types/cli.d.ts.map +1 -1
  152. package/dist/framework/types/config.d.ts +1 -5
  153. package/dist/framework/types/config.d.ts.map +1 -1
  154. package/dist/framework/types/index.d.ts +2 -2
  155. package/dist/framework/types/index.d.ts.map +1 -1
  156. package/dist/framework/types/recorder.d.ts +1 -1
  157. package/dist/framework/types/recorder.d.ts.map +1 -1
  158. package/dist/framework/types/structured-response.d.ts +27 -41
  159. package/dist/framework/types/structured-response.d.ts.map +1 -1
  160. package/dist/framework/types/structured-response.js +11 -23
  161. package/dist/framework/types/structured-response.js.map +1 -1
  162. package/dist/framework/types/test.d.ts +11 -2
  163. package/dist/framework/types/test.d.ts.map +1 -1
  164. package/dist/framework/utils/test-helpers.d.ts +1 -5
  165. package/dist/framework/utils/test-helpers.d.ts.map +1 -1
  166. package/dist/framework/utils/test-helpers.js +9 -24
  167. package/dist/framework/utils/test-helpers.js.map +1 -1
  168. package/dist/framework/utils/user-utils.d.ts +32 -0
  169. package/dist/framework/utils/user-utils.d.ts.map +1 -0
  170. package/dist/framework/utils/user-utils.js +60 -0
  171. package/dist/framework/utils/user-utils.js.map +1 -0
  172. package/dist/package.json +5 -2
  173. package/examples/README-ENDORPHIN.md +1 -1
  174. package/examples/endorphin.config.ts +2 -6
  175. package/examples/tests/MULTI-USER-001.ts +132 -0
  176. package/package.json +5 -2
  177. package/dist/framework/ai/types/agent.d.ts.map +0 -1
  178. package/dist/framework/ai/types/agent.js.map +0 -1
  179. package/dist/framework/automation/tools/content-optimization.d.ts +0 -44
  180. package/dist/framework/automation/tools/content-optimization.d.ts.map +0 -1
  181. package/dist/framework/automation/tools/content-optimization.js +0 -504
  182. package/dist/framework/automation/tools/content-optimization.js.map +0 -1
  183. package/dist/framework/content/processors/content-processor.d.ts +0 -40
  184. package/dist/framework/content/processors/content-processor.d.ts.map +0 -1
  185. package/dist/framework/content/processors/content-processor.js +0 -291
  186. package/dist/framework/content/processors/content-processor.js.map +0 -1
  187. /package/dist/framework/{ai/types → types}/agent.d.ts +0 -0
  188. /package/dist/framework/{ai/types → types}/agent.js +0 -0
@@ -24,9 +24,7 @@ export declare function handleTestRecorderCommand(config: FrameworkConfig): Prom
24
24
  /**
25
25
  * Handle test command with different options
26
26
  */
27
- export declare function handleTestCommand(args: string[], target: string | undefined, config: FrameworkConfig, options?: {
28
- parallel?: number;
29
- }): Promise<void>;
27
+ export declare function handleTestCommand(args: string[], target: string | undefined, config: FrameworkConfig, options?: Record<string, any>): Promise<void>;
30
28
  /**
31
29
  * Handle generate command
32
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../../bin/cli-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAChC,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI,CAeN;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB7F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F"}
1
+ {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../../bin/cli-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAChC,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI,CAeN;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAChC,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB7F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F"}
@@ -63,16 +63,19 @@ export async function handleTestCommand(args, target, config, options = {}) {
63
63
  return handleTestByPriority(args, config, options);
64
64
  }
65
65
  if (target === 'all') {
66
- const parallelInfo = options.parallel && options.parallel > 1 ? ` with ${options.parallel} workers` : '';
67
- console.log(`🚀 Running all tests${parallelInfo}...`);
66
+ console.log('🚀 Running all tests...');
68
67
  const { runAllTests } = await import('../framework/execution/discovery/cli-functions.js');
69
- await runAllTests(config, options);
68
+ await runAllTests(config);
70
69
  process.exit(0);
71
70
  }
72
71
  if (target) {
73
72
  console.log(`🧪 Running test: ${target}`);
74
73
  const { runSingleTestById } = await import('../framework/execution/discovery/cli-functions.js');
75
- await runSingleTestById(target, config);
74
+ const result = await runSingleTestById(target, config);
75
+ // Check if the test execution was successful
76
+ if (result && !result.success) {
77
+ process.exit(1);
78
+ }
76
79
  process.exit(0);
77
80
  }
78
81
  console.error('❌ Error: Please specify a test ID or "all" (e.g., endorphin run test QE-001)');
@@ -123,33 +126,31 @@ export async function handleOpenCommand(subcommand, target) {
123
126
  /**
124
127
  * Handle test by tag command
125
128
  */
126
- async function handleTestByTag(args, config, options = {}) {
129
+ async function handleTestByTag(args, config, _options = {}) {
127
130
  const tagIndex = args.indexOf('--tag');
128
131
  if (tagIndex === -1 || !args[tagIndex + 1]) {
129
132
  console.error('❌ Error: --tag requires a tag value');
130
133
  process.exit(1);
131
134
  }
132
135
  const tag = args[tagIndex + 1];
133
- const parallelInfo = options.parallel && options.parallel > 1 ? ` with ${options.parallel} workers` : '';
134
- console.log(`🏷️ Running tests with tag: ${tag}${parallelInfo}`);
136
+ console.log(`🏷️ Running tests with tag: ${tag}`);
135
137
  const { runTestsByTag } = await import('../framework/execution/discovery/cli-functions.js');
136
- await runTestsByTag(tag, config, options);
138
+ await runTestsByTag(tag, config);
137
139
  process.exit(0);
138
140
  }
139
141
  /**
140
142
  * Handle test by priority command
141
143
  */
142
- async function handleTestByPriority(args, config, options = {}) {
144
+ async function handleTestByPriority(args, config, _options = {}) {
143
145
  const priorityIndex = args.indexOf('--priority');
144
146
  if (priorityIndex === -1 || !args[priorityIndex + 1]) {
145
147
  console.error('❌ Error: --priority requires a priority value');
146
148
  process.exit(1);
147
149
  }
148
150
  const priority = args[priorityIndex + 1];
149
- const parallelInfo = options.parallel && options.parallel > 1 ? ` with ${options.parallel} workers` : '';
150
- console.log(`🎯 Running tests with priority: ${priority}${parallelInfo}`);
151
+ console.log(`🎯 Running tests with priority: ${priority}`);
151
152
  const { runTestsByPriority } = await import('../framework/execution/discovery/cli-functions.js');
152
- await runTestsByPriority(priority, config, options);
153
+ await runTestsByPriority(priority, config);
153
154
  process.exit(0);
154
155
  }
155
156
  //# sourceMappingURL=cli-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-handlers.js","sourceRoot":"","sources":["../../bin/cli-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-handlers.js","sourceRoot":"","sources":["../../bin/cli-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"endorphin.d.ts","sourceRoot":"","sources":["../../bin/endorphin.ts"],"names":[],"mappings":";AAEA;;GAEG;AAgOH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAmF1C"}
1
+ {"version":3,"file":"endorphin.d.ts","sourceRoot":"","sources":["../../bin/endorphin.ts"],"names":[],"mappings":";AAEA;;GAEG;AAmNH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyF1C"}
@@ -32,12 +32,6 @@ const FLAG_PARSERS = {
32
32
  }
33
33
  return {};
34
34
  },
35
- '--parallel': (nextArg) => {
36
- if (nextArg && !isNaN(Number(nextArg))) {
37
- return { parallel: parseInt(nextArg, 10), consumed: 1 };
38
- }
39
- return { parallel: 2 }; // Default to 2 workers when flag is used without value
40
- },
41
35
  '--model': (nextArg) => {
42
36
  if (nextArg) {
43
37
  return { model: nextArg, consumed: 1 };
@@ -68,12 +62,6 @@ const FLAG_PARSERS = {
68
62
  }
69
63
  return {};
70
64
  },
71
- '--retries': (nextArg) => {
72
- if (nextArg && !isNaN(Number(nextArg))) {
73
- return { maxRetries: parseInt(nextArg, 10), consumed: 1 };
74
- }
75
- return {};
76
- },
77
65
  '--tests-dir': (nextArg) => {
78
66
  if (nextArg) {
79
67
  return { testsDirectory: nextArg, consumed: 1 };
@@ -138,7 +126,6 @@ Options:
138
126
  --no-headless Run browser with visible UI
139
127
  --viewport <WxH> Set browser viewport (e.g., 1920x1080)
140
128
  --timeout <ms> Set test timeout in milliseconds
141
- --parallel <n> Run tests in parallel (default: 2)
142
129
  --model <n> Set AI model to use (e.g., gpt-4o-mini)
143
130
  --env <environment> Set environment (development/staging/production)
144
131
 
@@ -146,7 +133,7 @@ Examples:
146
133
  endorphin init # Set up new project
147
134
  endorphin run test HEALTH-001 # Run example test
148
135
  endorphin run test all --headless # Run all tests headless
149
- endorphin run test --tag smoke --parallel 3 # Run smoke tests with 3 workers
136
+ endorphin run test --tag smoke # Run smoke tests
150
137
  endorphin run test --priority High --env staging # Run high priority tests on staging
151
138
  endorphin run test-recorder # Start test recorder
152
139
  endorphin list # Show all available tests
@@ -228,23 +215,29 @@ export async function main() {
228
215
  break;
229
216
  }
230
217
  case 'run': {
231
- // Run commands need full AI validation
232
- const runConfig = await getConfig({ cwd: process.cwd(), cliFlags });
233
- if (args.includes('--debug')) {
234
- console.log('🔧 Loaded configuration:', JSON.stringify(runConfig, null, 2));
235
- }
236
218
  if (subcommand === 'test-recorder') {
237
- await handleTestRecorderCommand(runConfig);
238
- }
239
- else if (subcommand === 'test') {
240
- // Extract parallel/workers option from cliFlags
241
- const options = { parallel: cliFlags.parallel || 1 };
242
- await handleTestCommand(args, target, runConfig, options);
219
+ // Test recorder doesn't need AI validation until recording starts
220
+ const recorderConfig = await getConfig({
221
+ cwd: process.cwd(),
222
+ cliFlags,
223
+ validateAI: false
224
+ });
225
+ await handleTestRecorderCommand(recorderConfig);
243
226
  }
244
227
  else {
245
- console.error(`❌ Unknown run command: ${subcommand}`);
246
- console.log('Use "endorphin help" for usage information');
247
- process.exit(1);
228
+ // Other run commands need full AI validation
229
+ const runConfig = await getConfig({ cwd: process.cwd(), cliFlags });
230
+ if (args.includes('--debug')) {
231
+ console.log('🔧 Loaded configuration:', JSON.stringify(runConfig, null, 2));
232
+ }
233
+ if (subcommand === 'test') {
234
+ await handleTestCommand(args, target, runConfig);
235
+ }
236
+ else {
237
+ console.error(`❌ Unknown run command: ${subcommand}`);
238
+ console.log('Use "endorphin help" for usage information');
239
+ process.exit(1);
240
+ }
248
241
  }
249
242
  break;
250
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endorphin.js","sourceRoot":"","sources":["../../bin/endorphin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endorphin.js","sourceRoot":"","sources":["../../bin/endorphin.ts"],"names":[],"mappings":"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"}
@@ -145,7 +145,7 @@ export default {
145
145
 
146
146
  ai: {
147
147
  model: 'gpt-4o', // AI model to use
148
- maxRetries: 3, // Retry failed tests
148
+ maxRetries: 3, // Retry failed AI API calls
149
149
  temperature: 0.1, // Low randomness
150
150
  },
151
151
  };
@@ -2,7 +2,7 @@ export default {
2
2
  // Browser configuration
3
3
  browser: {
4
4
  type: 'chromium',
5
- headless: false, // Set to true for faster execution in CI/CD
5
+ headless: false, // Set to true for faster execution, automatically forced to true in CI environments
6
6
  viewport: { width: 1280, height: 720 },
7
7
  timeout: 30000,
8
8
  devtools: false,
@@ -60,8 +60,6 @@ export default {
60
60
  // Execution configuration
61
61
  execution: {
62
62
  timeout: 30000,
63
- parallel: false,
64
- retries: 0,
65
63
  },
66
64
 
67
65
  // Directory configuration
@@ -71,8 +69,6 @@ export default {
71
69
 
72
70
  // Environment
73
71
  environment: 'development',
74
- parallel: 1,
75
- maxRetries: 0,
76
72
 
77
73
  // Base URL for relative navigation (optional)
78
74
  // baseUrl: 'https://your-app.com',
@@ -81,7 +77,7 @@ export default {
81
77
  // 🎯 Configuration Tips:
82
78
  //
83
79
  // Browser Settings:
84
- // - Set headless: true for faster execution in CI/CD
80
+ // - Set headless: true for faster execution (automatically enabled in CI/CD)
85
81
  // - Increase timeout for slow websites
86
82
  // - Change viewport for mobile testing
87
83
  // - Use 'firefox' or 'webkit' for cross-browser testing
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Multi-User Test Example - Login with Multiple Users
3
+ * This test demonstrates how to use multi-user support in Endorphin AI
4
+ */
5
+
6
+ import type { TestCase } from 'endorphin-ai';
7
+
8
+ export const MULTI_USER_001: TestCase = {
9
+ id: 'MULTI-USER-001',
10
+ name: 'Multi-User Login Test',
11
+ description: 'Test login functionality with multiple users simultaneously',
12
+ priority: 'High',
13
+ tags: ['multi-user', 'login', 'authentication'],
14
+
15
+ // Define the users for this test (max 5 users)
16
+ users: ['user1', 'user2'], // Simplified naming for phase-based workflow
17
+
18
+ // Optional setup function that runs before the test
19
+ setup: async () => {
20
+ console.log('Setting up multi-user test environment...');
21
+
22
+ // You can use getPage() to access specific user pages in setup
23
+ // const user1Page = getPage('user-1');
24
+ // const user2Page = getPage('user-2');
25
+
26
+ return {
27
+ timestamp: new Date().toISOString(),
28
+ environment: 'test',
29
+ testUrl: 'https://qafromla.herokuapp.com/',
30
+ };
31
+ },
32
+
33
+ // Optional data generation function
34
+ data: async () => {
35
+ console.log('Generating test data for multi-user test...');
36
+
37
+ return {
38
+ users: {
39
+ 'user1': {
40
+ email: 'papapin888@gmail.com',
41
+ password: 'lalalend',
42
+ expectedUsername: 'Andrew',
43
+ },
44
+ 'user2': {
45
+ email: 'user2@gmail.com',
46
+ password: 'user2password',
47
+ expectedUsername: 'user2',
48
+ },
49
+ },
50
+ };
51
+ },
52
+
53
+ // Multi-user tasks function that returns user-specific task instructions
54
+ tasks: async (data, setupData, _users) => {
55
+ console.log('Generating user-specific tasks...', { users });
56
+
57
+ return {
58
+ 'user1': `
59
+ STEP 1: Navigate to ${setupData?.testUrl || 'https://qafromla.herokuapp.com/'}
60
+ STEP 2: Click on "LogIn" button
61
+ STEP 3: Wait 2 seconds for page load
62
+ STEP 4: Enter "${data?.users?.['user1']?.email}" in the email field
63
+ STEP 5: Wait 2 seconds
64
+ STEP 6: Enter "${data?.users?.['user1']?.password}" in the password field
65
+ STEP 7: Click "Sign In" button
66
+ STEP 8: Wait 5 seconds for page load and user data to appear
67
+ STEP 9: Verify login was successful by using verifyTextContent tool to check that username "${data?.users?.['user1']?.expectedUsername || 'Andrew'}" is visible on the page
68
+ `,
69
+
70
+ 'user2': `
71
+ STEP 1: Navigate to ${setupData?.testUrl || 'https://qafromla.herokuapp.com/'}
72
+ STEP 2: Click on "LogIn" button
73
+ STEP 3: Wait 2 seconds for page load
74
+ STEP 4: Enter "${data?.users?.['user2']?.email}" in the email field
75
+ STEP 5: Wait 2 seconds
76
+ STEP 6: Enter "${data?.users?.['user2']?.password}" in the password field
77
+ STEP 7: Click "Sign In" button
78
+ STEP 8: Wait 5 seconds for page load and user data to appear
79
+ STEP 9: Verify login was successful by using verifyTextContent tool to check that username "${data?.users?.['user2']?.expectedUsername}" is visible on the page
80
+ `,
81
+ };
82
+ },
83
+ };
84
+
85
+ /**
86
+ * Example of using getPage() utility in setup function
87
+ */
88
+ export const MULTI_USER_002: TestCase = {
89
+ id: 'MULTI-USER-002',
90
+ name: 'Multi-User Page Interaction Test',
91
+ description: 'Test direct page interaction with multiple users',
92
+ priority: 'Medium',
93
+ tags: ['multi-user', 'page-interaction'],
94
+
95
+ users: ['admin', 'regular-user'],
96
+
97
+ setup: async () => {
98
+ console.log('Setting up with direct page access...');
99
+
100
+ // Example of using getPage() to directly interact with user pages
101
+ // This would be available during test execution
102
+ /*
103
+ const adminPage = getPage('admin');
104
+ const regularUserPage = getPage('regular-user');
105
+
106
+ // You can perform setup actions on specific pages
107
+ await adminPage.goto('https://example.com/admin');
108
+ await regularUserPage.goto('https://example.com/user');
109
+ */
110
+
111
+ return {
112
+ adminUrl: 'https://qafromla.herokuapp.com/admin',
113
+ userUrl: 'https://qafromla.herokuapp.com/user',
114
+ };
115
+ },
116
+
117
+ tasks: async (data, setupData, _users) => {
118
+ return {
119
+ 'admin': `
120
+ STEP 1: Navigate to ${setupData?.adminUrl || 'https://qafromla.herokuapp.com/'}
121
+ STEP 2: Perform admin-specific actions
122
+ STEP 3: Verify admin functionality
123
+ `,
124
+
125
+ 'regular-user': `
126
+ STEP 1: Navigate to ${setupData?.userUrl || 'https://qafromla.herokuapp.com/'}
127
+ STEP 2: Perform regular user actions
128
+ STEP 3: Verify user functionality
129
+ `,
130
+ };
131
+ },
132
+ };
@@ -31,7 +31,7 @@ export declare function trackAICall(callType: string, prompt: string, response:
31
31
  totalTokens: number;
32
32
  cost: number;
33
33
  model: string;
34
- }, duration: number, context?: string): void;
34
+ }, duration: number, context?: string, userId?: string): void;
35
35
  interface AgentWorkflow {
36
36
  invoke(input: any, config?: {
37
37
  configurable?: {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-setup.d.ts","sourceRoot":"","sources":["../../../framework/ai/agent-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAOpD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,QAGhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE;IACV,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,EACD,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,QAmBjB;AAoBD,UAAU,aAAa;IACrB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC1B,YAAY,CAAC,EAAE;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAClB;AAKD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA4PvF"}
1
+ {"version":3,"file":"agent-setup.d.ts","sourceRoot":"","sources":["../../../framework/ai/agent-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,QAGhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE;IACV,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,EACD,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,QAsBhB;AAmBD,UAAU,aAAa;IACrB,MAAM,CACJ,KAAK,EAAE,GAAG,EACV,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,GACA,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AAKD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA0UvF"}