testchimp-runner-core 0.0.26 → 0.0.28
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/CREDIT_CALLBACK_ARCHITECTURE.md +253 -0
- package/INTEGRATION_COMPLETE.md +322 -0
- package/RELEASE_0.0.26.md +165 -0
- package/RELEASE_0.0.27.md +236 -0
- package/RELEASE_0.0.28.md +286 -0
- package/dist/credit-usage-service.d.ts +28 -2
- package/dist/credit-usage-service.d.ts.map +1 -1
- package/dist/credit-usage-service.js +60 -24
- package/dist/credit-usage-service.js.map +1 -1
- package/dist/execution-service.d.ts.map +1 -1
- package/dist/execution-service.js +134 -10
- package/dist/execution-service.js.map +1 -1
- package/dist/index.d.ts +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/progress-reporter.d.ts +30 -0
- package/dist/progress-reporter.d.ts.map +1 -1
- package/dist/prompts.js +4 -4
- package/dist/scenario-service.d.ts +1 -1
- package/dist/scenario-service.d.ts.map +1 -1
- package/dist/scenario-service.js +7 -4
- package/dist/scenario-service.js.map +1 -1
- package/dist/scenario-worker-class.d.ts +2 -10
- package/dist/scenario-worker-class.d.ts.map +1 -1
- package/dist/scenario-worker-class.js +88 -26
- package/dist/scenario-worker-class.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/credit-usage-service.ts +81 -26
- package/src/execution-service.ts +158 -11
- package/src/index.ts +42 -10
- package/src/progress-reporter.ts +35 -0
- package/src/prompts.ts +4 -4
- package/src/scenario-service.ts +16 -4
- package/src/scenario-worker-class.ts +102 -28
- package/src/types.ts +16 -0
- package/testchimp-runner-core-0.0.27.tgz +0 -0
- package/testchimp-runner-core-0.0.26.tgz +0 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEjH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAGvK,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACjH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,oBAAoB,EAEpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,cAAc,gBAAgB,CAAC;AAG/B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,gBAAgB,CAAmB;IACpC,eAAe,EAAE,eAAe,CAAC;IACxC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAC,CAA8D;IAC7E,OAAO,CAAC,mBAAmB,CAAC,CAAgG;IAC5H,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAsB;gBAGhD,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,mBAAmB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EACnH,mBAAmB,CAAC,EAAE,mBAAmB;IAoC3C;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C1D;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA2CvC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAQpF;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI;IAO1C;;;;OAIG;IACH,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAK3D;;OAEG;IACH,OAAO,CAAC,GAAG;IAOX;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAI5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,GAAG,EACrB,eAAe,CAAC,EAAE,GAAG,EACrB,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC,MAAM,CAAC;IAcZ,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA4CzC,yBAAyB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAMrD,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,GAAG,MAAM,EAAE;CAkD3E"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.TestChimpService = exports.loadEnvConfig = exports.ExtractDataTool = exports.CheckPageReadyTool = exports.InspectPageTool = exports.RecallHistoryTool = exports.TakeScreenshotTool = exports.DEFAULT_AGENT_CONFIG = exports.ToolRegistry = exports.OrchestratorAgent = exports.LocalLLMProvider = exports.BackendProxyLLMProvider = exports.StepExecutionStatus = exports.NoOpFileHandler = exports.CIFileHandler = exports.LocalFileHandler = exports.CreditUsageService = exports.LLMFacade = exports.PlaywrightMCPService = exports.ScenarioWorker = exports.ScenarioService = exports.ExecutionService = void 0;
|
|
21
|
+
exports.TestChimpService = exports.loadEnvConfig = exports.ExtractDataTool = exports.CheckPageReadyTool = exports.InspectPageTool = exports.RecallHistoryTool = exports.TakeScreenshotTool = exports.DEFAULT_AGENT_CONFIG = exports.ToolRegistry = exports.OrchestratorAgent = exports.LocalLLMProvider = exports.BackendProxyLLMProvider = exports.StepExecutionStatus = exports.NoOpFileHandler = exports.CIFileHandler = exports.LocalFileHandler = exports.CreditUsageReason = exports.CreditUsageService = exports.LLMFacade = exports.PlaywrightMCPService = exports.ScenarioWorker = exports.ScenarioService = exports.ExecutionService = void 0;
|
|
22
22
|
// Core services
|
|
23
23
|
const execution_service_1 = require("./execution-service");
|
|
24
24
|
Object.defineProperty(exports, "ExecutionService", { enumerable: true, get: function () { return execution_service_1.ExecutionService; } });
|
|
@@ -32,6 +32,7 @@ const llm_facade_1 = require("./llm-facade");
|
|
|
32
32
|
Object.defineProperty(exports, "LLMFacade", { enumerable: true, get: function () { return llm_facade_1.LLMFacade; } });
|
|
33
33
|
const credit_usage_service_1 = require("./credit-usage-service");
|
|
34
34
|
Object.defineProperty(exports, "CreditUsageService", { enumerable: true, get: function () { return credit_usage_service_1.CreditUsageService; } });
|
|
35
|
+
Object.defineProperty(exports, "CreditUsageReason", { enumerable: true, get: function () { return credit_usage_service_1.CreditUsageReason; } });
|
|
35
36
|
// File handlers
|
|
36
37
|
const file_handler_1 = require("./file-handler");
|
|
37
38
|
Object.defineProperty(exports, "LocalFileHandler", { enumerable: true, get: function () { return file_handler_1.LocalFileHandler; } });
|
|
@@ -64,16 +65,18 @@ Object.defineProperty(exports, "loadEnvConfig", { enumerable: true, get: functio
|
|
|
64
65
|
__exportStar(require("./script-utils"), exports);
|
|
65
66
|
// Main TestChimp service class
|
|
66
67
|
class TestChimpService {
|
|
67
|
-
constructor(fileHandler, authConfig, backendUrl, maxWorkers, llmProvider, progressReporter, orchestratorOptions) {
|
|
68
|
+
constructor(fileHandler, authConfig, backendUrl, maxWorkers, llmProvider, progressReporter, orchestratorOptions, creditUsageCallback) {
|
|
68
69
|
this.fileHandler = fileHandler || new file_handler_1.NoOpFileHandler();
|
|
69
70
|
this.authConfig = authConfig || null;
|
|
70
71
|
this.backendUrl = backendUrl || 'https://featureservice.testchimp.io'; // Default to production
|
|
71
72
|
this.progressReporter = progressReporter;
|
|
72
73
|
this.orchestratorOptions = orchestratorOptions;
|
|
74
|
+
this.creditUsageCallback = creditUsageCallback;
|
|
73
75
|
// Use provided LLM provider or default to backend proxy (backward compatible)
|
|
74
76
|
this.llmProvider = llmProvider || new backend_proxy_llm_provider_1.BackendProxyLLMProvider(authConfig, backendUrl);
|
|
75
77
|
this.playwrightService = new playwright_mcp_service_1.PlaywrightMCPService();
|
|
76
|
-
|
|
78
|
+
// Pass credit callback to constructor - preserved across recreations via this.creditUsageCallback
|
|
79
|
+
this.creditUsageService = new credit_usage_service_1.CreditUsageService(this.authConfig || undefined, this.backendUrl, this.creditUsageCallback);
|
|
77
80
|
// Create services with providers
|
|
78
81
|
this.executionService = new execution_service_1.ExecutionService(this.authConfig || undefined, this.backendUrl, maxWorkers || 10, this.llmProvider, // Pass the LLM provider
|
|
79
82
|
this.progressReporter // Pass the progress reporter
|
|
@@ -125,8 +128,8 @@ class TestChimpService {
|
|
|
125
128
|
if (this.logger) {
|
|
126
129
|
this.llmProvider.setLogger?.(this.logger);
|
|
127
130
|
}
|
|
128
|
-
// Recreate services with new provider
|
|
129
|
-
this.creditUsageService = new credit_usage_service_1.CreditUsageService(this.authConfig || undefined, this.backendUrl);
|
|
131
|
+
// Recreate services with new provider (preserve credit callback)
|
|
132
|
+
this.creditUsageService = new credit_usage_service_1.CreditUsageService(this.authConfig || undefined, this.backendUrl, this.creditUsageCallback);
|
|
130
133
|
this.executionService = new execution_service_1.ExecutionService(this.authConfig || undefined, this.backendUrl, 10, this.llmProvider, // Pass the LLM provider
|
|
131
134
|
this.progressReporter // Pass the progress reporter
|
|
132
135
|
);
|
|
@@ -162,6 +165,15 @@ class TestChimpService {
|
|
|
162
165
|
this.scenarioService.setOutputChannel(outputChannel);
|
|
163
166
|
}
|
|
164
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Set credit usage callback
|
|
170
|
+
* Server-side: Use callback to update DB directly (no axios calls)
|
|
171
|
+
* Client-side: Don't set callback, uses auth for axios calls to backend
|
|
172
|
+
*/
|
|
173
|
+
setCreditUsageCallback(callback) {
|
|
174
|
+
this.creditUsageCallback = callback; // Store for future service recreations
|
|
175
|
+
this.creditUsageService.setCreditUsageCallback(callback);
|
|
176
|
+
}
|
|
165
177
|
/**
|
|
166
178
|
* Log a message using the configured logger
|
|
167
179
|
*/
|
|
@@ -186,8 +198,8 @@ class TestChimpService {
|
|
|
186
198
|
// Cleanup resources
|
|
187
199
|
}
|
|
188
200
|
// Scenario generation
|
|
189
|
-
async generateScript(scenario, testName, config, model, scenarioFileName) {
|
|
190
|
-
return this.scenarioService.processScenario(scenario, testName, config, model, scenarioFileName);
|
|
201
|
+
async generateScript(scenario, testName, config, model, scenarioFileName, existingBrowser, existingContext, existingPage) {
|
|
202
|
+
return this.scenarioService.processScenario(scenario, testName, config, model, scenarioFileName, existingBrowser, existingContext, existingPage);
|
|
191
203
|
}
|
|
192
204
|
// Test execution
|
|
193
205
|
async executeScript(request) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,2DAAuD;AAQ9C,iGARA,oCAAgB,OAQA;AAPzB,yDAAqD;AAO1B,gGAPlB,kCAAe,OAOkB;AAN1C,mEAAyD;AAMb,+FANnC,sCAAc,OAMmC;AAL1D,qEAAgE;AAKJ,qGALnD,6CAAoB,OAKmD;AAJhF,6CAAyC;AAIyC,0FAJzE,sBAAS,OAIyE;AAF3F,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,15 @@ export interface TokenUsage {
|
|
|
59
59
|
model: string;
|
|
60
60
|
timestamp: number;
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Additional step info for lifecycle callbacks
|
|
64
|
+
*/
|
|
65
|
+
export interface StepInfo {
|
|
66
|
+
stepId?: string;
|
|
67
|
+
stepNumber: number;
|
|
68
|
+
description: string;
|
|
69
|
+
code?: string;
|
|
70
|
+
}
|
|
62
71
|
/**
|
|
63
72
|
* Progress reporter interface for external consumers
|
|
64
73
|
*/
|
|
@@ -93,5 +102,26 @@ export interface ProgressReporter {
|
|
|
93
102
|
* Generic logging (for environments that don't need structured progress)
|
|
94
103
|
*/
|
|
95
104
|
log?(message: string, level?: 'log' | 'error' | 'warn'): void;
|
|
105
|
+
/**
|
|
106
|
+
* LIFECYCLE CALLBACKS (optional - used by scriptservice, ignored by local clients)
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* Called before test execution starts
|
|
110
|
+
* - Script Service: Initialize browser context, set up DB records
|
|
111
|
+
* - VS Extension/GitHub: Not used (ignore)
|
|
112
|
+
*/
|
|
113
|
+
beforeStartTest?(page: any, browser: any, context: any): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Called before each step execution
|
|
116
|
+
* - Script Service: Update step status to IN_PROGRESS in DB
|
|
117
|
+
* - VS Extension/GitHub: Not used (ignore)
|
|
118
|
+
*/
|
|
119
|
+
beforeStepStart?(step: StepInfo, page: any): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Called after test execution completes (success or failure)
|
|
122
|
+
* - Script Service: Write final status to DB, cleanup resources
|
|
123
|
+
* - VS Extension/GitHub: Not used (return value is sufficient)
|
|
124
|
+
*/
|
|
125
|
+
afterEndTest?(status: 'passed' | 'failed', error?: string, page?: any): Promise<void>;
|
|
96
126
|
}
|
|
97
127
|
//# sourceMappingURL=progress-reporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-reporter.d.ts","sourceRoot":"","sources":["../src/progress-reporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,2BAA2B;IAClC,OAAO,2BAA2B;IAClC,WAAW,+BAA+B;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,CAAC,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;OAIG;IACH,aAAa,CAAC,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;OAEG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpH;;;;OAIG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"progress-reporter.d.ts","sourceRoot":"","sources":["../src/progress-reporter.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.js
CHANGED
|
@@ -732,12 +732,12 @@ ${script}
|
|
|
732
732
|
|
|
733
733
|
YOUR TASK (MINOR ADJUSTMENTS ONLY):
|
|
734
734
|
1. Remove duplicate/redundant expect() assertions (e.g., same assertion repeated twice)
|
|
735
|
-
2.
|
|
736
|
-
3.
|
|
737
|
-
4.
|
|
738
|
-
5. Remove any obviously redundant waits or checks
|
|
735
|
+
2. Fix obvious formatting issues (inconsistent spacing, etc.)
|
|
736
|
+
3. Consolidate multiple identical assertions into one
|
|
737
|
+
4. Remove any obviously redundant waits or checks
|
|
739
738
|
|
|
740
739
|
DO NOT:
|
|
740
|
+
- Remove step comments (e.g., "// Step 1: ..." or "// Navigate to...") - these are important for readability
|
|
741
741
|
- Change the test logic or flow
|
|
742
742
|
- Remove legitimate assertions
|
|
743
743
|
- Restructure the code
|
|
@@ -44,7 +44,7 @@ export declare class ScenarioService extends EventEmitter {
|
|
|
44
44
|
private initializeWorkers;
|
|
45
45
|
private createWorker;
|
|
46
46
|
initialize(): Promise<void>;
|
|
47
|
-
processScenario(scenario: string, testName?: string, config?: PlaywrightConfig, model?: string, scenarioFileName?: string): string;
|
|
47
|
+
processScenario(scenario: string, testName?: string, config?: PlaywrightConfig, model?: string, scenarioFileName?: string, existingBrowser?: any, existingContext?: any, existingPage?: any): string;
|
|
48
48
|
private processNextJob;
|
|
49
49
|
private handleJobResult;
|
|
50
50
|
private handleJobError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-service.d.ts","sourceRoot":"","sources":["../src/scenario-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiD,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAmB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,MAAM,CAAC,CAA8D;IAC7E,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAM;gBAG1B,UAAU,GAAE,MAAU,EACtB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;IAeH;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpF;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI;IAI1C;;OAEG;IACH,OAAO,CAAC,GAAG;YAOG,iBAAiB;YAMjB,YAAY;IA0BpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,eAAe,
|
|
1
|
+
{"version":3,"file":"scenario-service.d.ts","sourceRoot":"","sources":["../src/scenario-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiD,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAmB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,MAAM,CAAC,CAA8D;IAC7E,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAM;gBAG1B,UAAU,GAAE,MAAU,EACtB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;IAeH;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpF;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI;IAI1C;;OAEG;IACH,OAAO,CAAC,GAAG;YAOG,iBAAiB;YAMjB,YAAY;IA0BpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,GAAG,EACrB,eAAe,CAAC,EAAE,GAAG,EACrB,YAAY,CAAC,EAAE,GAAG,GACjB,MAAM;YAsBK,cAAc;IA0C5B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAShB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAWhC"}
|
package/dist/scenario-service.js
CHANGED
|
@@ -71,14 +71,14 @@ class ScenarioService extends events_1.EventEmitter {
|
|
|
71
71
|
this.emit('jobLog', jobId, message);
|
|
72
72
|
});
|
|
73
73
|
this.workers.push(worker);
|
|
74
|
-
|
|
74
|
+
// Internal initialization - no need to log worker details
|
|
75
75
|
}
|
|
76
76
|
async initialize() {
|
|
77
77
|
// Wait for workers to be initialized
|
|
78
78
|
await this.initializeWorkers();
|
|
79
|
-
|
|
79
|
+
// Internal initialization - consumer doesn't need to see this
|
|
80
80
|
}
|
|
81
|
-
processScenario(scenario, testName, config, model, scenarioFileName) {
|
|
81
|
+
processScenario(scenario, testName, config, model, scenarioFileName, existingBrowser, existingContext, existingPage) {
|
|
82
82
|
const jobId = `scenario_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
83
83
|
// Add job to queue
|
|
84
84
|
const job = {
|
|
@@ -87,7 +87,10 @@ class ScenarioService extends events_1.EventEmitter {
|
|
|
87
87
|
testName,
|
|
88
88
|
playwrightConfig: config,
|
|
89
89
|
model,
|
|
90
|
-
scenarioFileName
|
|
90
|
+
scenarioFileName,
|
|
91
|
+
existingBrowser,
|
|
92
|
+
existingContext,
|
|
93
|
+
existingPage
|
|
91
94
|
};
|
|
92
95
|
this.jobQueue.push(job);
|
|
93
96
|
this.processNextJob();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-service.js","sourceRoot":"","sources":["../src/scenario-service.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsC;AACtC,oDAA4B;AAE5B,mEAAyD;AACzD,iDAA8D;AAE9D,iEAA4D;AAK5D,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;GAEG;AACH,MAAa,eAAgB,SAAQ,qBAAY;IAiB/C,YACE,aAAqB,CAAC,EACtB,WAAyB,EACzB,WAAyB,EACzB,gBAAmC,EACnC,UAAuB,EACvB,UAAmB,EACnB,OAIC;QAED,KAAK,EAAE,CAAC;QA7BF,YAAO,GAAqB,EAAE,CAAC;QAC/B,aAAQ,GAAqB,EAAE,CAAC;QAChC,gBAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;QA4BnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,8BAAe,EAAE,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,yCAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmE;QAC3E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,aAAkB;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe,EAAE,QAAkC,KAAK;QAClE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,oDAAoD;IACtD,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,oDAAoD;QACpD,MAAM,MAAM,GAAG,IAAI,sCAAc,CAC/B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,UAAU,IAAI,SAAS,EAC5B,IAAI,CAAC,UAAU,EACf;YACE,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,EACD,IAAI,CAAC,aAAa,CAAE,qCAAqC;SAC1D,CAAC;QACF,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1B,sDAAsD;QACtD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,
|
|
1
|
+
{"version":3,"file":"scenario-service.js","sourceRoot":"","sources":["../src/scenario-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { ScenarioResponse } from './types';
|
|
2
|
+
import { ScenarioRunJob, ScenarioResponse } from './types';
|
|
3
3
|
import { FileHandler } from './file-handler';
|
|
4
4
|
import { AuthConfig } from './auth-config';
|
|
5
5
|
import { LLMProvider } from './llm-provider';
|
|
@@ -8,14 +8,6 @@ import { AgentConfig } from './orchestrator';
|
|
|
8
8
|
interface OutputChannel {
|
|
9
9
|
appendLine: (text: string) => void;
|
|
10
10
|
}
|
|
11
|
-
interface ScenarioJob {
|
|
12
|
-
id: string;
|
|
13
|
-
scenario: string;
|
|
14
|
-
testName?: string;
|
|
15
|
-
playwrightConfig?: string;
|
|
16
|
-
model?: string;
|
|
17
|
-
scenarioFileName?: string;
|
|
18
|
-
}
|
|
19
11
|
export declare class ScenarioWorker extends EventEmitter {
|
|
20
12
|
private initialized;
|
|
21
13
|
private sessionId;
|
|
@@ -59,7 +51,7 @@ export declare class ScenarioWorker extends EventEmitter {
|
|
|
59
51
|
*/
|
|
60
52
|
private isComplexStep;
|
|
61
53
|
initialize(): Promise<void>;
|
|
62
|
-
processScenarioJob(job:
|
|
54
|
+
processScenarioJob(job: ScenarioRunJob): Promise<ScenarioResponse>;
|
|
63
55
|
private executePlaywrightCommand;
|
|
64
56
|
cleanup(): Promise<void>;
|
|
65
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-worker-class.d.ts","sourceRoot":"","sources":["../src/scenario-worker-class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,
|
|
1
|
+
{"version":3,"file":"scenario-worker-class.d.ts","sourceRoot":"","sources":["../src/scenario-worker-class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAgB,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAkD,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAIL,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAGxB,UAAU,aAAa;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAiBD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAS;IAG9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,SAAS,CAAkB;gBAGjC,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,EACD,aAAa,CAAC,EAAE,aAAa;IAsB/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;YACW,qBAAqB;IAWnC;;OAEG;YACW,kBAAkB;IAchC;;OAEG;YACW,iBAAiB;IAW/B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkCf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAmxB1D,wBAAwB;IA6BhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
|
|
@@ -39,7 +39,6 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
39
39
|
* Initialize orchestrator mode with tools
|
|
40
40
|
*/
|
|
41
41
|
initializeOrchestrator() {
|
|
42
|
-
this.log('🤖 Initializing Orchestrator Mode');
|
|
43
42
|
// Create tool registry
|
|
44
43
|
this.toolRegistry = new orchestrator_1.ToolRegistry();
|
|
45
44
|
// Create tools (READ-ONLY information gathering only)
|
|
@@ -69,11 +68,11 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
69
68
|
}
|
|
70
69
|
}, this.debugMode // Pass debug mode
|
|
71
70
|
);
|
|
72
|
-
|
|
71
|
+
// Minimal initialization logging - internal details not needed by consumer
|
|
73
72
|
}
|
|
74
73
|
log(message) {
|
|
75
|
-
|
|
76
|
-
const formattedMessage = `[
|
|
74
|
+
// Let consumer add timestamps - just report the raw message
|
|
75
|
+
const formattedMessage = `[ScenarioWorker] ${message}`;
|
|
77
76
|
// Always log to console for debug visibility
|
|
78
77
|
console.log(formattedMessage);
|
|
79
78
|
// Also route to outputChannel if provided
|
|
@@ -82,8 +81,8 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
logError(message) {
|
|
85
|
-
|
|
86
|
-
const formattedMessage = `[
|
|
84
|
+
// Let consumer add timestamps - just report the raw message
|
|
85
|
+
const formattedMessage = `[ScenarioWorker] ERROR: ${message}`;
|
|
87
86
|
// Always log to console for debug visibility
|
|
88
87
|
console.error(formattedMessage);
|
|
89
88
|
// Also route to outputChannel if provided
|
|
@@ -160,14 +159,9 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
160
159
|
}
|
|
161
160
|
async initialize() {
|
|
162
161
|
try {
|
|
163
|
-
const RUNNER_CORE_VERSION = "v1.5.0-vision-preserve-values";
|
|
164
|
-
this.log('═══════════════════════════════════════════════════════');
|
|
165
|
-
this.log(`🚀 RUNNER-CORE VERSION: ${RUNNER_CORE_VERSION}`);
|
|
166
|
-
this.log('═══════════════════════════════════════════════════════');
|
|
167
|
-
this.log('Initializing Scenario worker...');
|
|
168
162
|
this.sessionId = `scenario_worker_${Date.now()}`;
|
|
169
163
|
this.initialized = true;
|
|
170
|
-
|
|
164
|
+
// Minimal initialization - consumer doesn't need to see internal details
|
|
171
165
|
}
|
|
172
166
|
catch (error) {
|
|
173
167
|
this.logError(`Scenario worker initialization error: ${error}`);
|
|
@@ -180,9 +174,9 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
180
174
|
}
|
|
181
175
|
// Set current job ID for progress reporting
|
|
182
176
|
this.currentJobId = job.id;
|
|
183
|
-
//
|
|
184
|
-
const
|
|
185
|
-
this.log(
|
|
177
|
+
// Log library version once (read from package.json)
|
|
178
|
+
const packageJson = require('../package.json');
|
|
179
|
+
this.log(`testchimp-runner-core v${packageJson.version}`);
|
|
186
180
|
this.log(`📋 Processing scenario: ${job.scenario}`);
|
|
187
181
|
const startTime = Date.now();
|
|
188
182
|
const steps = [];
|
|
@@ -216,16 +210,30 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
216
210
|
this.emit('log', job.id, `${step.stepNumber}. ${step.description}\n`);
|
|
217
211
|
}
|
|
218
212
|
this.emit('log', job.id, `\n## Execution Progress\n\n`);
|
|
219
|
-
// 2. Start a new browser session
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
213
|
+
// 2. Start a new browser session or use existing one
|
|
214
|
+
if (job.existingBrowser && job.existingContext && job.existingPage) {
|
|
215
|
+
// Use existing browser provided by caller (e.g., scriptservice)
|
|
216
|
+
this.log('Using existing browser/page provided by caller');
|
|
217
|
+
browser = job.existingBrowser;
|
|
218
|
+
context = job.existingContext;
|
|
219
|
+
page = job.existingPage;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Create new browser (default behavior for local clients)
|
|
223
|
+
// Default to headed mode (headless: false) for better debugging
|
|
224
|
+
// Create logger function from outputChannel for browser initialization
|
|
225
|
+
const logger = this.outputChannel ? (message, level) => {
|
|
226
|
+
this.outputChannel.appendLine(`[Browser] ${message}`);
|
|
227
|
+
} : undefined;
|
|
228
|
+
const browserInstance = await (0, browser_utils_1.initializeBrowser)(job.playwrightConfig, false, undefined, logger);
|
|
229
|
+
browser = browserInstance.browser;
|
|
230
|
+
context = browserInstance.context;
|
|
231
|
+
page = browserInstance.page;
|
|
232
|
+
}
|
|
233
|
+
// LIFECYCLE: Call beforeStartTest if provided
|
|
234
|
+
if (this.progressReporter?.beforeStartTest) {
|
|
235
|
+
await this.progressReporter.beforeStartTest(page, browser, context);
|
|
236
|
+
}
|
|
229
237
|
// Set reasonable timeout for most operations
|
|
230
238
|
// 5 seconds for element interactions (fast feedback on wrong selectors)
|
|
231
239
|
// Navigation operations should use explicit longer timeouts
|
|
@@ -265,6 +273,13 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
265
273
|
const step = steps[i];
|
|
266
274
|
step.stepNumber = i + 1;
|
|
267
275
|
try {
|
|
276
|
+
// LIFECYCLE: Call beforeStepStart if provided
|
|
277
|
+
if (this.progressReporter?.beforeStepStart) {
|
|
278
|
+
await this.progressReporter.beforeStepStart({
|
|
279
|
+
stepNumber: step.stepNumber,
|
|
280
|
+
description: step.description
|
|
281
|
+
}, page);
|
|
282
|
+
}
|
|
268
283
|
// Use orchestrator to execute this step
|
|
269
284
|
const result = await this.orchestratorAgent.executeStep(page, step.description, step.stepNumber, steps.length, steps.map(s => s.description), memory, job.id);
|
|
270
285
|
// Update step with result
|
|
@@ -292,6 +307,17 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
292
307
|
break; // Exit loop
|
|
293
308
|
}
|
|
294
309
|
}
|
|
310
|
+
// REPORT FINAL STEP RESULT (after orchestrator completes all iterations)
|
|
311
|
+
// This gives the complete accumulated commands, not just one iteration
|
|
312
|
+
await this.reportStepProgress({
|
|
313
|
+
jobId: job.id,
|
|
314
|
+
stepNumber: step.stepNumber,
|
|
315
|
+
description: step.description,
|
|
316
|
+
code: step.playwrightCommands?.join('\n') || '', // All accumulated commands
|
|
317
|
+
status: step.success ? progress_reporter_1.StepExecutionStatus.SUCCESS : progress_reporter_1.StepExecutionStatus.FAILURE,
|
|
318
|
+
error: step.error,
|
|
319
|
+
agentIteration: result.iterations
|
|
320
|
+
});
|
|
295
321
|
}
|
|
296
322
|
catch (error) {
|
|
297
323
|
this.logError(`Orchestrator execution failed for step ${step.stepNumber}: ${error.message}`);
|
|
@@ -673,7 +699,16 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
673
699
|
preferredFileName = `${sanitizedName}.smart.spec.js`;
|
|
674
700
|
}
|
|
675
701
|
// Generate clean script with TestChimp comment and code
|
|
702
|
+
this.log(`[ScenarioWorker] Generating script from ${steps.length} steps`);
|
|
703
|
+
steps.forEach((s, i) => {
|
|
704
|
+
this.log(`[ScenarioWorker] Step ${i + 1}: ${s.description}`);
|
|
705
|
+
this.log(`[ScenarioWorker] Commands: ${s.playwrightCommands?.length || 0}`);
|
|
706
|
+
if (s.playwrightCommands && s.playwrightCommands.length > 0) {
|
|
707
|
+
this.log(`[ScenarioWorker] First command: ${s.playwrightCommands[0]}`);
|
|
708
|
+
}
|
|
709
|
+
});
|
|
676
710
|
generatedScript = (0, script_utils_1.generateTestScript)(testName, steps, undefined, hashtags);
|
|
711
|
+
this.log(`[ScenarioWorker] Generated script length: ${generatedScript.length}`);
|
|
677
712
|
// Perform final cleanup pass to remove redundancies and make minor adjustments
|
|
678
713
|
this.log(`[ScenarioWorker] Performing final script cleanup...`);
|
|
679
714
|
try {
|
|
@@ -737,6 +772,14 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
737
772
|
logLines.push(``);
|
|
738
773
|
}
|
|
739
774
|
const executionLog = logLines.join('\n');
|
|
775
|
+
// Report job completion
|
|
776
|
+
await this.reportJobProgress({
|
|
777
|
+
jobId: job.id,
|
|
778
|
+
status: overallSuccess ? 'completed' : 'failed',
|
|
779
|
+
testName,
|
|
780
|
+
script: generatedScript,
|
|
781
|
+
error: overallSuccess ? undefined : 'Some steps failed during execution'
|
|
782
|
+
});
|
|
740
783
|
return {
|
|
741
784
|
success: overallSuccess,
|
|
742
785
|
steps,
|
|
@@ -750,6 +793,14 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
750
793
|
catch (error) {
|
|
751
794
|
overallSuccess = false;
|
|
752
795
|
this.logError(`Overall scenario processing error: ${error}`);
|
|
796
|
+
// Report job failure
|
|
797
|
+
await this.reportJobProgress({
|
|
798
|
+
jobId: job.id,
|
|
799
|
+
status: 'failed',
|
|
800
|
+
testName: job.testName || 'test',
|
|
801
|
+
script: generatedScript,
|
|
802
|
+
error: error instanceof Error ? error.message : 'Unknown error during scenario processing'
|
|
803
|
+
});
|
|
753
804
|
return {
|
|
754
805
|
success: false,
|
|
755
806
|
steps,
|
|
@@ -762,7 +813,18 @@ class ScenarioWorker extends events_1.EventEmitter {
|
|
|
762
813
|
};
|
|
763
814
|
}
|
|
764
815
|
finally {
|
|
765
|
-
if
|
|
816
|
+
// LIFECYCLE: Call afterEndTest if provided
|
|
817
|
+
if (browser && this.progressReporter?.afterEndTest) {
|
|
818
|
+
try {
|
|
819
|
+
await this.progressReporter.afterEndTest(overallSuccess ? 'passed' : 'failed', overallSuccess ? undefined : 'Test execution had failures', page);
|
|
820
|
+
}
|
|
821
|
+
catch (callbackError) {
|
|
822
|
+
this.log(`afterEndTest callback failed: ${callbackError}`);
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
// Only close browser if we created it (not provided by caller)
|
|
826
|
+
const usingExternalBrowser = !!(job.existingBrowser && job.existingContext && job.existingPage);
|
|
827
|
+
if (browser && !usingExternalBrowser) {
|
|
766
828
|
await browser.close();
|
|
767
829
|
}
|
|
768
830
|
}
|