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.
- package/README.md +149 -388
- package/dist/bin/cli-handlers.d.ts +1 -3
- package/dist/bin/cli-handlers.d.ts.map +1 -1
- package/dist/bin/cli-handlers.js +13 -12
- package/dist/bin/cli-handlers.js.map +1 -1
- package/dist/bin/endorphin.d.ts.map +1 -1
- package/dist/bin/endorphin.js +21 -28
- package/dist/bin/endorphin.js.map +1 -1
- package/dist/examples/README-ENDORPHIN.md +1 -1
- package/dist/examples/endorphin.config.ts +2 -6
- package/dist/examples/tests/MULTI-USER-001.ts +132 -0
- package/dist/framework/ai/agent-setup.d.ts +1 -1
- package/dist/framework/ai/agent-setup.d.ts.map +1 -1
- package/dist/framework/ai/agent-setup.js +140 -80
- package/dist/framework/ai/agent-setup.js.map +1 -1
- package/dist/framework/ai/config/agent-config.d.ts +2 -5
- package/dist/framework/ai/config/agent-config.d.ts.map +1 -1
- package/dist/framework/ai/config/agent-config.js +2 -5
- package/dist/framework/ai/config/agent-config.js.map +1 -1
- package/dist/framework/ai/validation-agent.d.ts.map +1 -1
- package/dist/framework/ai/validation-agent.js +10 -12
- package/dist/framework/ai/validation-agent.js.map +1 -1
- package/dist/framework/automation/browser/browser-framework.d.ts +1 -2
- package/dist/framework/automation/browser/browser-framework.d.ts.map +1 -1
- package/dist/framework/automation/browser/browser-framework.js +2 -2
- package/dist/framework/automation/browser/browser-framework.js.map +1 -1
- package/dist/framework/automation/browser/browser-manager.d.ts +35 -0
- package/dist/framework/automation/browser/browser-manager.d.ts.map +1 -1
- package/dist/framework/automation/browser/browser-manager.js +190 -4
- package/dist/framework/automation/browser/browser-manager.js.map +1 -1
- package/dist/framework/automation/engines/browser-engine.d.ts +2 -2
- package/dist/framework/automation/engines/browser-engine.d.ts.map +1 -1
- package/dist/framework/automation/engines/browser-engine.js +35 -30
- package/dist/framework/automation/engines/browser-engine.js.map +1 -1
- package/dist/framework/automation/tools/content.d.ts.map +1 -1
- package/dist/framework/automation/tools/content.js +6 -27
- package/dist/framework/automation/tools/content.js.map +1 -1
- package/dist/framework/automation/tools/index.d.ts +1 -2
- package/dist/framework/automation/tools/index.d.ts.map +1 -1
- package/dist/framework/automation/tools/index.js +6 -5
- package/dist/framework/automation/tools/index.js.map +1 -1
- package/dist/framework/automation/tools/interaction.d.ts +4 -4
- package/dist/framework/automation/tools/interaction.d.ts.map +1 -1
- package/dist/framework/automation/tools/interaction.js +12 -10
- package/dist/framework/automation/tools/interaction.js.map +1 -1
- package/dist/framework/automation/tools/navigation.d.ts +1 -2
- package/dist/framework/automation/tools/navigation.d.ts.map +1 -1
- package/dist/framework/automation/tools/navigation.js +1 -0
- package/dist/framework/automation/tools/navigation.js.map +1 -1
- package/dist/framework/automation/tools/verification.d.ts +54 -0
- package/dist/framework/automation/tools/verification.d.ts.map +1 -1
- package/dist/framework/automation/tools/verification.js +250 -6
- package/dist/framework/automation/tools/verification.js.map +1 -1
- package/dist/framework/cli/builtin-tools-command.d.ts.map +1 -1
- package/dist/framework/cli/builtin-tools-command.js +20 -2
- package/dist/framework/cli/builtin-tools-command.js.map +1 -1
- package/dist/framework/cli/init-command.d.ts.map +1 -1
- package/dist/framework/cli/init-command.js +38 -10
- package/dist/framework/cli/init-command.js.map +1 -1
- package/dist/framework/config/browser-config.d.ts +3 -3
- package/dist/framework/config/browser-config.d.ts.map +1 -1
- package/dist/framework/config/browser-config.js +5 -2
- package/dist/framework/config/browser-config.js.map +1 -1
- package/dist/framework/config/constants.d.ts +3 -5
- package/dist/framework/config/constants.d.ts.map +1 -1
- package/dist/framework/config/constants.js +4 -5
- package/dist/framework/config/constants.js.map +1 -1
- package/dist/framework/config/system-context.d.ts +1 -1
- package/dist/framework/config/system-context.d.ts.map +1 -1
- package/dist/framework/config/system-context.js +18 -8
- package/dist/framework/config/system-context.js.map +1 -1
- package/dist/framework/core/ci-performance.d.ts +60 -0
- package/dist/framework/core/ci-performance.d.ts.map +1 -0
- package/dist/framework/core/ci-performance.js +301 -0
- package/dist/framework/core/ci-performance.js.map +1 -0
- package/dist/framework/core/config-loader.d.ts.map +1 -1
- package/dist/framework/core/config-loader.js +0 -18
- package/dist/framework/core/config-loader.js.map +1 -1
- package/dist/framework/core/config-manager.d.ts.map +1 -1
- package/dist/framework/core/config-manager.js +2 -13
- package/dist/framework/core/config-manager.js.map +1 -1
- package/dist/framework/core/debug-manager.d.ts +1 -1
- package/dist/framework/core/debug-manager.d.ts.map +1 -1
- package/dist/framework/core/global-setup-manager.d.ts +8 -0
- package/dist/framework/core/global-setup-manager.d.ts.map +1 -1
- package/dist/framework/core/global-setup-manager.js +39 -6
- package/dist/framework/core/global-setup-manager.js.map +1 -1
- package/dist/framework/core/resource-manager.d.ts +4 -0
- package/dist/framework/core/resource-manager.d.ts.map +1 -1
- package/dist/framework/core/resource-manager.js +44 -1
- package/dist/framework/core/resource-manager.js.map +1 -1
- package/dist/framework/core/session-manager.d.ts +4 -0
- package/dist/framework/core/session-manager.d.ts.map +1 -1
- package/dist/framework/core/session-manager.js +15 -0
- package/dist/framework/core/session-manager.js.map +1 -1
- package/dist/framework/core/test-framework-di.d.ts +1 -1
- package/dist/framework/core/test-framework-di.d.ts.map +1 -1
- package/dist/framework/core/test-framework-di.js +1 -1
- package/dist/framework/core/test-framework-di.js.map +1 -1
- package/dist/framework/core/test-framework.d.ts +16 -2
- package/dist/framework/core/test-framework.d.ts.map +1 -1
- package/dist/framework/core/test-framework.js +302 -12
- package/dist/framework/core/test-framework.js.map +1 -1
- package/dist/framework/execution/discovery/cli-functions.d.ts +3 -9
- package/dist/framework/execution/discovery/cli-functions.d.ts.map +1 -1
- package/dist/framework/execution/discovery/cli-functions.js +28 -54
- package/dist/framework/execution/discovery/cli-functions.js.map +1 -1
- package/dist/framework/execution/discovery/discovery-types.d.ts +0 -3
- package/dist/framework/execution/discovery/discovery-types.d.ts.map +1 -1
- package/dist/framework/execution/discovery/test-discoverer.d.ts +4 -0
- package/dist/framework/execution/discovery/test-discoverer.d.ts.map +1 -1
- package/dist/framework/execution/discovery/test-discoverer.js +51 -22
- package/dist/framework/execution/discovery/test-discoverer.js.map +1 -1
- package/dist/framework/execution/runner/test-runner.d.ts +6 -6
- package/dist/framework/execution/runner/test-runner.d.ts.map +1 -1
- package/dist/framework/execution/runner/test-runner.js +116 -159
- package/dist/framework/execution/runner/test-runner.js.map +1 -1
- package/dist/framework/index.d.ts +1 -1
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js +2 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/managers/content/snapshot-manager.d.ts +2 -4
- package/dist/framework/managers/content/snapshot-manager.d.ts.map +1 -1
- package/dist/framework/managers/content/snapshot-manager.js +15 -29
- package/dist/framework/managers/content/snapshot-manager.js.map +1 -1
- package/dist/framework/managers/system/framework-manager.d.ts +0 -1
- package/dist/framework/managers/system/framework-manager.d.ts.map +1 -1
- package/dist/framework/managers/system/framework-manager.js +0 -9
- package/dist/framework/managers/system/framework-manager.js.map +1 -1
- package/dist/framework/reporters/performance-reporter.d.ts +19 -0
- package/dist/framework/reporters/performance-reporter.d.ts.map +1 -0
- package/dist/framework/reporters/performance-reporter.js +763 -0
- package/dist/framework/reporters/performance-reporter.js.map +1 -0
- package/dist/framework/reporting/generators/html-generator.d.ts.map +1 -1
- package/dist/framework/reporting/generators/html-generator.js +1 -0
- package/dist/framework/reporting/generators/html-generator.js.map +1 -1
- package/dist/framework/templates/reporter/scripts.d.ts +10 -2
- package/dist/framework/templates/reporter/scripts.d.ts.map +1 -1
- package/dist/framework/templates/reporter/scripts.js +148 -12
- package/dist/framework/templates/reporter/scripts.js.map +1 -1
- package/dist/framework/templates/reporter/styles.css +112 -0
- package/dist/framework/test-recorder/interactive-recorder.js +1 -1
- package/dist/framework/test-recorder/interactive-recorder.js.map +1 -1
- package/dist/framework/test-recorder/session-recorder.d.ts +1 -1
- package/dist/framework/test-recorder/session-recorder.d.ts.map +1 -1
- package/dist/framework/test-recorder/session-recorder.js +6 -5
- package/dist/framework/test-recorder/session-recorder.js.map +1 -1
- package/dist/framework/types/agent.d.ts.map +1 -0
- package/dist/framework/types/agent.js.map +1 -0
- package/dist/framework/types/cli.d.ts +0 -2
- package/dist/framework/types/cli.d.ts.map +1 -1
- package/dist/framework/types/config.d.ts +1 -5
- package/dist/framework/types/config.d.ts.map +1 -1
- package/dist/framework/types/index.d.ts +2 -2
- package/dist/framework/types/index.d.ts.map +1 -1
- package/dist/framework/types/recorder.d.ts +1 -1
- package/dist/framework/types/recorder.d.ts.map +1 -1
- package/dist/framework/types/structured-response.d.ts +27 -41
- package/dist/framework/types/structured-response.d.ts.map +1 -1
- package/dist/framework/types/structured-response.js +11 -23
- package/dist/framework/types/structured-response.js.map +1 -1
- package/dist/framework/types/test.d.ts +11 -2
- package/dist/framework/types/test.d.ts.map +1 -1
- package/dist/framework/utils/test-helpers.d.ts +1 -5
- package/dist/framework/utils/test-helpers.d.ts.map +1 -1
- package/dist/framework/utils/test-helpers.js +9 -24
- package/dist/framework/utils/test-helpers.js.map +1 -1
- package/dist/framework/utils/user-utils.d.ts +32 -0
- package/dist/framework/utils/user-utils.d.ts.map +1 -0
- package/dist/framework/utils/user-utils.js +60 -0
- package/dist/framework/utils/user-utils.js.map +1 -0
- package/dist/package.json +5 -2
- package/examples/README-ENDORPHIN.md +1 -1
- package/examples/endorphin.config.ts +2 -6
- package/examples/tests/MULTI-USER-001.ts +132 -0
- package/package.json +5 -2
- package/dist/framework/ai/types/agent.d.ts.map +0 -1
- package/dist/framework/ai/types/agent.js.map +0 -1
- package/dist/framework/automation/tools/content-optimization.d.ts +0 -44
- package/dist/framework/automation/tools/content-optimization.d.ts.map +0 -1
- package/dist/framework/automation/tools/content-optimization.js +0 -504
- package/dist/framework/automation/tools/content-optimization.js.map +0 -1
- package/dist/framework/content/processors/content-processor.d.ts +0 -40
- package/dist/framework/content/processors/content-processor.d.ts.map +0 -1
- package/dist/framework/content/processors/content-processor.js +0 -291
- package/dist/framework/content/processors/content-processor.js.map +0 -1
- /package/dist/framework/{ai/types → types}/agent.d.ts +0 -0
- /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
|
|
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"}
|
package/dist/bin/cli-handlers.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,WAAgC,EAChC,QAAoB;IAEpB,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrB,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAuB;IAC7D,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC;IAC3F,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;QACzE,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAuB;IACrE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,oDAAoD,CACrD,CAAC;IACF,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAc,EACd,MAA0B,EAC1B,MAAuB,EACvB,
|
|
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;
|
|
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"}
|
package/dist/bin/endorphin.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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":";AAEA;;GAEG;AAEH,0FAA0F;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,mBAAmB;AACnB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAElE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAYnC,MAAM,YAAY,GAA+B;IAC/C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACxB,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;QACvB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"endorphin.js","sourceRoot":"","sources":["../../bin/endorphin.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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;
|
|
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"}
|