testchimp-runner-core 0.0.21 → 0.0.23
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/VISION_DIAGNOSTICS_IMPROVEMENTS.md +336 -0
- package/dist/credit-usage-service.d.ts +9 -0
- package/dist/credit-usage-service.d.ts.map +1 -1
- package/dist/credit-usage-service.js +20 -5
- package/dist/credit-usage-service.js.map +1 -1
- package/dist/execution-service.d.ts +7 -2
- package/dist/execution-service.d.ts.map +1 -1
- package/dist/execution-service.js +91 -36
- package/dist/execution-service.js.map +1 -1
- package/dist/index.d.ts +30 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -26
- package/dist/index.js.map +1 -1
- package/dist/llm-facade.d.ts +64 -8
- package/dist/llm-facade.d.ts.map +1 -1
- package/dist/llm-facade.js +361 -109
- package/dist/llm-facade.js.map +1 -1
- package/dist/llm-provider.d.ts +39 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +7 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/model-constants.d.ts +21 -0
- package/dist/model-constants.d.ts.map +1 -0
- package/dist/model-constants.js +24 -0
- package/dist/model-constants.js.map +1 -0
- package/dist/orchestrator/index.d.ts +8 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +23 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrator-agent.d.ts +66 -0
- package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-agent.js +855 -0
- package/dist/orchestrator/orchestrator-agent.js.map +1 -0
- package/dist/orchestrator/tool-registry.d.ts +74 -0
- package/dist/orchestrator/tool-registry.d.ts.map +1 -0
- package/dist/orchestrator/tool-registry.js +131 -0
- package/dist/orchestrator/tool-registry.js.map +1 -0
- package/dist/orchestrator/tools/check-page-ready.d.ts +13 -0
- package/dist/orchestrator/tools/check-page-ready.d.ts.map +1 -0
- package/dist/orchestrator/tools/check-page-ready.js +72 -0
- package/dist/orchestrator/tools/check-page-ready.js.map +1 -0
- package/dist/orchestrator/tools/extract-data.d.ts +13 -0
- package/dist/orchestrator/tools/extract-data.d.ts.map +1 -0
- package/dist/orchestrator/tools/extract-data.js +84 -0
- package/dist/orchestrator/tools/extract-data.js.map +1 -0
- package/dist/orchestrator/tools/index.d.ts +10 -0
- package/dist/orchestrator/tools/index.d.ts.map +1 -0
- package/dist/orchestrator/tools/index.js +18 -0
- package/dist/orchestrator/tools/index.js.map +1 -0
- package/dist/orchestrator/tools/inspect-page.d.ts +13 -0
- package/dist/orchestrator/tools/inspect-page.d.ts.map +1 -0
- package/dist/orchestrator/tools/inspect-page.js +39 -0
- package/dist/orchestrator/tools/inspect-page.js.map +1 -0
- package/dist/orchestrator/tools/recall-history.d.ts +13 -0
- package/dist/orchestrator/tools/recall-history.d.ts.map +1 -0
- package/dist/orchestrator/tools/recall-history.js +64 -0
- package/dist/orchestrator/tools/recall-history.js.map +1 -0
- package/dist/orchestrator/tools/take-screenshot.d.ts +15 -0
- package/dist/orchestrator/tools/take-screenshot.d.ts.map +1 -0
- package/dist/orchestrator/tools/take-screenshot.js +112 -0
- package/dist/orchestrator/tools/take-screenshot.js.map +1 -0
- package/dist/orchestrator/types.d.ts +133 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +28 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/playwright-mcp-service.d.ts +9 -0
- package/dist/playwright-mcp-service.d.ts.map +1 -1
- package/dist/playwright-mcp-service.js +20 -5
- package/dist/playwright-mcp-service.js.map +1 -1
- package/dist/progress-reporter.d.ts +97 -0
- package/dist/progress-reporter.d.ts.map +1 -0
- package/dist/progress-reporter.js +18 -0
- package/dist/progress-reporter.js.map +1 -0
- package/dist/prompts.d.ts +24 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +593 -68
- package/dist/prompts.js.map +1 -1
- package/dist/providers/backend-proxy-llm-provider.d.ts +25 -0
- package/dist/providers/backend-proxy-llm-provider.d.ts.map +1 -0
- package/dist/providers/backend-proxy-llm-provider.js +76 -0
- package/dist/providers/backend-proxy-llm-provider.js.map +1 -0
- package/dist/providers/local-llm-provider.d.ts +21 -0
- package/dist/providers/local-llm-provider.d.ts.map +1 -0
- package/dist/providers/local-llm-provider.js +35 -0
- package/dist/providers/local-llm-provider.js.map +1 -0
- package/dist/scenario-service.d.ts +27 -1
- package/dist/scenario-service.d.ts.map +1 -1
- package/dist/scenario-service.js +48 -12
- package/dist/scenario-service.js.map +1 -1
- package/dist/scenario-worker-class.d.ts +39 -2
- package/dist/scenario-worker-class.d.ts.map +1 -1
- package/dist/scenario-worker-class.js +614 -86
- package/dist/scenario-worker-class.js.map +1 -1
- package/dist/script-utils.d.ts +2 -0
- package/dist/script-utils.d.ts.map +1 -1
- package/dist/script-utils.js +44 -4
- package/dist/script-utils.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/browser-utils.d.ts +20 -1
- package/dist/utils/browser-utils.d.ts.map +1 -1
- package/dist/utils/browser-utils.js +102 -51
- package/dist/utils/browser-utils.js.map +1 -1
- package/dist/utils/page-info-utils.d.ts +23 -4
- package/dist/utils/page-info-utils.d.ts.map +1 -1
- package/dist/utils/page-info-utils.js +174 -43
- package/dist/utils/page-info-utils.js.map +1 -1
- package/package.json +1 -2
- package/plandocs/HUMAN_LIKE_IMPROVEMENTS.md +642 -0
- package/plandocs/MULTI_AGENT_ARCHITECTURE_REVIEW.md +844 -0
- package/plandocs/ORCHESTRATOR_MVP_SUMMARY.md +539 -0
- package/plandocs/PHASE1_ABSTRACTION_COMPLETE.md +241 -0
- package/plandocs/PHASE1_FINAL_STATUS.md +210 -0
- package/plandocs/PLANNING_SESSION_SUMMARY.md +372 -0
- package/plandocs/SCRIPT_CLEANUP_FEATURE.md +201 -0
- package/plandocs/SCRIPT_GENERATION_ARCHITECTURE.md +364 -0
- package/plandocs/SELECTOR_IMPROVEMENTS.md +139 -0
- package/src/credit-usage-service.ts +23 -5
- package/src/execution-service.ts +152 -42
- package/src/index.ts +169 -26
- package/src/llm-facade.ts +500 -126
- package/src/llm-provider.ts +43 -0
- package/src/model-constants.ts +23 -0
- package/src/orchestrator/index.ts +33 -0
- package/src/orchestrator/orchestrator-agent.ts +1037 -0
- package/src/orchestrator/tool-registry.ts +182 -0
- package/src/orchestrator/tools/check-page-ready.ts +75 -0
- package/src/orchestrator/tools/extract-data.ts +92 -0
- package/src/orchestrator/tools/index.ts +11 -0
- package/src/orchestrator/tools/inspect-page.ts +42 -0
- package/src/orchestrator/tools/recall-history.ts +72 -0
- package/src/orchestrator/tools/take-screenshot.ts +128 -0
- package/src/orchestrator/types.ts +200 -0
- package/src/playwright-mcp-service.ts +23 -5
- package/src/progress-reporter.ts +109 -0
- package/src/prompts.ts +606 -69
- package/src/providers/backend-proxy-llm-provider.ts +91 -0
- package/src/providers/local-llm-provider.ts +38 -0
- package/src/scenario-service.ts +83 -13
- package/src/scenario-worker-class.ts +740 -72
- package/src/script-utils.ts +50 -5
- package/src/types.ts +13 -1
- package/src/utils/browser-utils.ts +123 -51
- package/src/utils/page-info-utils.ts +210 -53
- package/testchimp-runner-core-0.0.22.tgz +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Recall History Tool
|
|
4
|
+
* Access deeper history beyond the recent 6-7 steps always provided
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RecallHistoryTool = void 0;
|
|
8
|
+
class RecallHistoryTool {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.name = 'recall_history';
|
|
11
|
+
this.description = 'Access journey history beyond the recent 6-7 steps always provided in context. Use when you need to remember what happened earlier in the journey.';
|
|
12
|
+
this.parameters = [
|
|
13
|
+
{
|
|
14
|
+
name: 'maxSteps',
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'Maximum number of historical steps to retrieve (from most recent backwards)',
|
|
17
|
+
required: false,
|
|
18
|
+
default: 10
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'query',
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Optional: Filter for specific actions (e.g., "login", "form fill")',
|
|
24
|
+
required: false
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
async execute(params, context) {
|
|
29
|
+
const { memory, logger } = context;
|
|
30
|
+
const journeyMemory = memory;
|
|
31
|
+
const maxSteps = params.maxSteps || 10;
|
|
32
|
+
const query = params.query?.toLowerCase();
|
|
33
|
+
try {
|
|
34
|
+
logger?.(`[RecallHistory] Retrieving up to ${maxSteps} historical steps${query ? ` matching "${query}"` : ''}`, 'log');
|
|
35
|
+
let steps = [...journeyMemory.history];
|
|
36
|
+
// Filter by query if provided
|
|
37
|
+
if (query) {
|
|
38
|
+
steps = steps.filter(step => step.action.toLowerCase().includes(query) ||
|
|
39
|
+
step.code.toLowerCase().includes(query) ||
|
|
40
|
+
step.observation.toLowerCase().includes(query));
|
|
41
|
+
}
|
|
42
|
+
// Take most recent N steps
|
|
43
|
+
const recentSteps = steps.slice(-maxSteps);
|
|
44
|
+
logger?.(`[RecallHistory] ✓ Found ${recentSteps.length} historical steps`, 'log');
|
|
45
|
+
return {
|
|
46
|
+
success: true,
|
|
47
|
+
data: {
|
|
48
|
+
steps: recentSteps,
|
|
49
|
+
totalHistorySize: journeyMemory.history.length,
|
|
50
|
+
filtered: !!query
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
logger?.(`[RecallHistory] ✗ Failed: ${error.message}`, 'error');
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
error: `History recall failed: ${error.message}`
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.RecallHistoryTool = RecallHistoryTool;
|
|
64
|
+
//# sourceMappingURL=recall-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall-history.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/recall-history.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAG,gBAAgB,CAAC;QACxB,gBAAW,GAAG,oJAAoJ,CAAC;QAEnK,eAAU,GAAoB;YAC5B;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6EAA6E;gBAC1F,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;gBACjF,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;IA2CJ,CAAC;IAzCC,KAAK,CAAC,OAAO,CAAC,MAA2B,EAAE,OAA6B;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,aAAa,GAAG,MAAuB,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,oCAAoC,QAAQ,oBAAoB,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAEvH,IAAI,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAEvC,8BAA8B;YAC9B,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC/C,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE3C,MAAM,EAAE,CAAC,2BAA2B,WAAW,CAAC,MAAM,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAElF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,KAAK,EAAE,WAAW;oBAClB,gBAAgB,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;oBAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK;iBAClB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA7DD,8CA6DC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Take Screenshot Tool
|
|
3
|
+
* Captures current page state visually and analyzes it with DOM snapshot
|
|
4
|
+
*/
|
|
5
|
+
import { Tool, ToolParameter, ToolExecutionContext } from '../tool-registry';
|
|
6
|
+
import { ToolResult } from '../types';
|
|
7
|
+
export declare class TakeScreenshotTool implements Tool {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
private llmFacade?;
|
|
11
|
+
setLLMFacade(llmFacade: any): void;
|
|
12
|
+
parameters: ToolParameter[];
|
|
13
|
+
execute(params: Record<string, any>, context: ToolExecutionContext): Promise<ToolResult>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=take-screenshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-screenshot.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/tools/take-screenshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,qBAAa,kBAAmB,YAAW,IAAI;IAC7C,IAAI,SAAqB;IACzB,WAAW,SAA4O;IAGvP,OAAO,CAAC,SAAS,CAAC,CAAM;IAExB,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAIlC,UAAU,EAAE,aAAa,EAAE,CAczB;IAEI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CAwF/F"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Take Screenshot Tool
|
|
4
|
+
* Captures current page state visually and analyzes it with DOM snapshot
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TakeScreenshotTool = void 0;
|
|
8
|
+
const page_info_utils_1 = require("../../utils/page-info-utils");
|
|
9
|
+
const model_constants_1 = require("../../model-constants");
|
|
10
|
+
class TakeScreenshotTool {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.name = 'take_screenshot';
|
|
13
|
+
this.description = 'Capture a screenshot and analyze it with DOM snapshot to get actionable selector recommendations. Use when you need to see the actual page visually to find the right elements. Returns text-based analysis with selector suggestions.';
|
|
14
|
+
this.parameters = [
|
|
15
|
+
{
|
|
16
|
+
name: 'isFullPage',
|
|
17
|
+
type: 'boolean',
|
|
18
|
+
description: 'If true, captures entire page (scrolling). If false, captures only viewport. DEFAULT: true (recommended for finding elements that may be below fold)',
|
|
19
|
+
required: false,
|
|
20
|
+
default: true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'purpose',
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'What you are trying to find or understand from the screenshot',
|
|
26
|
+
required: false
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
setLLMFacade(llmFacade) {
|
|
31
|
+
this.llmFacade = llmFacade;
|
|
32
|
+
}
|
|
33
|
+
async execute(params, context) {
|
|
34
|
+
const { page, logger } = context;
|
|
35
|
+
const isFullPage = params.isFullPage !== undefined ? params.isFullPage : true; // Default: true (capture full page)
|
|
36
|
+
const purpose = params.purpose || 'Analyze page structure and elements';
|
|
37
|
+
try {
|
|
38
|
+
logger?.(`[TakeScreenshot] Capturing ${isFullPage ? 'full page' : 'viewport'} screenshot for: ${purpose}`, 'log');
|
|
39
|
+
// Capture screenshot (JPEG 60 quality for smaller size)
|
|
40
|
+
const screenshotBuffer = await page.screenshot({
|
|
41
|
+
fullPage: isFullPage,
|
|
42
|
+
type: 'jpeg',
|
|
43
|
+
quality: 60
|
|
44
|
+
});
|
|
45
|
+
// Convert to data URL
|
|
46
|
+
const base64 = screenshotBuffer.toString('base64');
|
|
47
|
+
const dataUrl = `data:image/jpeg;base64,${base64}`;
|
|
48
|
+
logger?.(`[TakeScreenshot] ✓ Screenshot captured (${Math.round(base64.length / 1024)}KB), analyzing with DOM...`, 'log');
|
|
49
|
+
// Get DOM snapshot for correlation (already has ARIA tree + interactive elements with bboxes)
|
|
50
|
+
const pageInfo = await (0, page_info_utils_1.getEnhancedPageInfo)(page);
|
|
51
|
+
// Analyze screenshot with structured DOM via LLM
|
|
52
|
+
let analysis = 'Screenshot captured. Use DOM snapshot in context to find selectors.';
|
|
53
|
+
if (this.llmFacade) {
|
|
54
|
+
try {
|
|
55
|
+
logger?.(`[TakeScreenshot] Calling LLM for vision analysis...`, 'log');
|
|
56
|
+
const analysisPrompt = `Analyze screenshot WITH DOM structure to identify correct Playwright selectors.
|
|
57
|
+
|
|
58
|
+
PURPOSE: ${purpose}
|
|
59
|
+
|
|
60
|
+
INTERACTIVE ELEMENTS (with positions and suggested selectors):
|
|
61
|
+
${pageInfo.formattedElements}
|
|
62
|
+
|
|
63
|
+
ARIA TREE (hierarchical structure):
|
|
64
|
+
${JSON.stringify(pageInfo.ariaSnapshot, null, 2).substring(0, 2000)}
|
|
65
|
+
|
|
66
|
+
TASK:
|
|
67
|
+
1. Look at screenshot - identify the visual elements you need for: ${purpose}
|
|
68
|
+
2. Match visual position with bounding boxes above
|
|
69
|
+
3. Recommend SEMANTIC SELECTORS FIRST: getByRole, getByLabel, getByPlaceholder, getByText
|
|
70
|
+
4. AVOID auto-generated IDs with unicode (e.g., #«r3»-form-item)
|
|
71
|
+
|
|
72
|
+
Output format:
|
|
73
|
+
"For [visual element description]:
|
|
74
|
+
Try: [semantic selector from list - prefer getByRole/getByLabel]
|
|
75
|
+
Or: [alternative selector]"
|
|
76
|
+
|
|
77
|
+
Be concise. Only 2-3 recommendations. Prioritize user-friendly semantic selectors.`;
|
|
78
|
+
const llmResponse = await this.llmFacade.llmProvider.callLLM({
|
|
79
|
+
model: model_constants_1.VISION_MODEL,
|
|
80
|
+
systemPrompt: 'You are a vision analysis expert for web automation. Analyze screenshots with DOM snapshots to recommend working Playwright selectors. ALWAYS prioritize semantic selectors (getByRole, getByLabel, getByText) over CSS selectors with auto-generated IDs.',
|
|
81
|
+
userPrompt: analysisPrompt,
|
|
82
|
+
imageUrl: dataUrl
|
|
83
|
+
});
|
|
84
|
+
analysis = llmResponse.answer || analysis;
|
|
85
|
+
logger?.(`[TakeScreenshot] ✓ Vision analysis complete`, 'log');
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
logger?.(`[TakeScreenshot] ⚠ Vision analysis failed, returning raw screenshot: ${error.message}`, 'warn');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
success: true,
|
|
93
|
+
data: {
|
|
94
|
+
screenshot: dataUrl,
|
|
95
|
+
isFullPage,
|
|
96
|
+
size: base64.length,
|
|
97
|
+
interactiveElementCount: pageInfo.interactiveElements.length
|
|
98
|
+
},
|
|
99
|
+
learning: analysis // Text-based analysis with selector recommendations
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
logger?.(`[TakeScreenshot] ✗ Failed: ${error.message}`, 'error');
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
error: `Screenshot capture failed: ${error.message}`
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.TakeScreenshotTool = TakeScreenshotTool;
|
|
112
|
+
//# sourceMappingURL=take-screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-screenshot.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/take-screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Agent Types
|
|
3
|
+
* Core types for the tool-using, memory-maintaining orchestrator agent
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Self-reflection guidance for next iteration
|
|
7
|
+
*/
|
|
8
|
+
export interface SelfReflection {
|
|
9
|
+
guidanceForNext: string;
|
|
10
|
+
detectingLoop: boolean;
|
|
11
|
+
loopReasoning?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Journey memory - tracks the agent's journey through the scenario
|
|
15
|
+
*/
|
|
16
|
+
export interface JourneyMemory {
|
|
17
|
+
history: MemoryStep[];
|
|
18
|
+
experiences: string[];
|
|
19
|
+
extractedData: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Individual step in journey history
|
|
23
|
+
*/
|
|
24
|
+
export interface MemoryStep {
|
|
25
|
+
stepNumber: number;
|
|
26
|
+
iteration?: number;
|
|
27
|
+
action: string;
|
|
28
|
+
code: string;
|
|
29
|
+
result: 'success' | 'failure';
|
|
30
|
+
observation: string;
|
|
31
|
+
error?: string;
|
|
32
|
+
url: string;
|
|
33
|
+
timestamp: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Tool call request from agent
|
|
37
|
+
*/
|
|
38
|
+
export interface ToolCall {
|
|
39
|
+
name: string;
|
|
40
|
+
params: Record<string, any>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Tool execution result
|
|
44
|
+
*/
|
|
45
|
+
export interface ToolResult {
|
|
46
|
+
success: boolean;
|
|
47
|
+
data?: any;
|
|
48
|
+
error?: string;
|
|
49
|
+
learning?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Agent decision output
|
|
53
|
+
*/
|
|
54
|
+
export interface AgentDecision {
|
|
55
|
+
toolCalls?: ToolCall[];
|
|
56
|
+
toolReasoning?: string;
|
|
57
|
+
needsToolResults?: boolean;
|
|
58
|
+
commands?: string[];
|
|
59
|
+
commandReasoning?: string;
|
|
60
|
+
selfReflection?: SelfReflection;
|
|
61
|
+
memoryUpdate?: {
|
|
62
|
+
action: string;
|
|
63
|
+
observation: string;
|
|
64
|
+
extractedData?: Record<string, any>;
|
|
65
|
+
};
|
|
66
|
+
experiences?: string[];
|
|
67
|
+
status: 'complete' | 'stuck' | 'infeasible' | 'continue';
|
|
68
|
+
statusReasoning: string;
|
|
69
|
+
reasoning: string;
|
|
70
|
+
blockerDetected?: {
|
|
71
|
+
description: string;
|
|
72
|
+
clearingCommands: string[];
|
|
73
|
+
};
|
|
74
|
+
stepReEvaluation?: {
|
|
75
|
+
detected: boolean;
|
|
76
|
+
issue: 'prior_incomplete' | 'already_done' | 'wrong_order' | null;
|
|
77
|
+
explanation: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Context provided to agent each iteration
|
|
82
|
+
*/
|
|
83
|
+
export interface AgentContext {
|
|
84
|
+
overallGoal: string;
|
|
85
|
+
currentStepGoal: string;
|
|
86
|
+
stepNumber: number;
|
|
87
|
+
totalSteps: number;
|
|
88
|
+
completedSteps: string[];
|
|
89
|
+
remainingSteps: string[];
|
|
90
|
+
currentPageInfo: any;
|
|
91
|
+
currentURL: string;
|
|
92
|
+
recentSteps: MemoryStep[];
|
|
93
|
+
experiences: string[];
|
|
94
|
+
extractedData: Record<string, string>;
|
|
95
|
+
previousIterationGuidance?: SelfReflection;
|
|
96
|
+
toolResults?: Record<string, ToolResult>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Configurable guardrails
|
|
100
|
+
*/
|
|
101
|
+
export interface AgentConfig {
|
|
102
|
+
maxIterationsPerStep?: number;
|
|
103
|
+
maxToolCallsPerIteration?: number;
|
|
104
|
+
maxCommandsPerIteration?: number;
|
|
105
|
+
maxExploratoryActionsPerIteration?: number;
|
|
106
|
+
maxExploratoryActionsPerStep?: number;
|
|
107
|
+
maxConsecutiveStepFailures?: number;
|
|
108
|
+
maxTotalIterations?: number;
|
|
109
|
+
continueOnStepFailure?: boolean;
|
|
110
|
+
maxExperiences?: number;
|
|
111
|
+
maxHistorySize?: number;
|
|
112
|
+
recentStepsCount?: number;
|
|
113
|
+
commandTimeout?: number;
|
|
114
|
+
explorationTimeout?: number;
|
|
115
|
+
allowedExplorationActions?: string[];
|
|
116
|
+
allowedDomains?: string[];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Step execution result from orchestrator
|
|
120
|
+
*/
|
|
121
|
+
export interface OrchestratorStepResult {
|
|
122
|
+
success: boolean;
|
|
123
|
+
commands: string[];
|
|
124
|
+
iterations: number;
|
|
125
|
+
terminationReason?: 'complete' | 'stuck' | 'infeasible' | 'system_limit' | 'agent_stuck';
|
|
126
|
+
memory: JourneyMemory;
|
|
127
|
+
error?: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Default config values
|
|
131
|
+
*/
|
|
132
|
+
export declare const DEFAULT_AGENT_CONFIG: Required<AgentConfig>;
|
|
133
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Orchestrator Agent Types
|
|
4
|
+
* Core types for the tool-using, memory-maintaining orchestrator agent
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DEFAULT_AGENT_CONFIG = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Default config values
|
|
10
|
+
*/
|
|
11
|
+
exports.DEFAULT_AGENT_CONFIG = {
|
|
12
|
+
maxIterationsPerStep: 8,
|
|
13
|
+
maxToolCallsPerIteration: 5,
|
|
14
|
+
maxCommandsPerIteration: 5,
|
|
15
|
+
maxExploratoryActionsPerIteration: 3,
|
|
16
|
+
maxExploratoryActionsPerStep: 10,
|
|
17
|
+
maxConsecutiveStepFailures: 3, // Increased from 2
|
|
18
|
+
maxTotalIterations: 50,
|
|
19
|
+
continueOnStepFailure: true, // Try subsequent steps even if one fails
|
|
20
|
+
maxExperiences: 20,
|
|
21
|
+
maxHistorySize: 100,
|
|
22
|
+
recentStepsCount: 7,
|
|
23
|
+
commandTimeout: 30000,
|
|
24
|
+
explorationTimeout: 2000,
|
|
25
|
+
allowedExplorationActions: ['hover', 'click_info', 'click_menu', 'focus'],
|
|
26
|
+
allowedDomains: []
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgLH;;GAEG;AACU,QAAA,oBAAoB,GAA0B;IACzD,oBAAoB,EAAE,CAAC;IACvB,wBAAwB,EAAE,CAAC;IAC3B,uBAAuB,EAAE,CAAC;IAC1B,iCAAiC,EAAE,CAAC;IACpC,4BAA4B,EAAE,EAAE;IAChC,0BAA0B,EAAE,CAAC,EAAG,mBAAmB;IACnD,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,IAAI,EAAG,yCAAyC;IACvE,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,GAAG;IACnB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,KAAK;IACrB,kBAAkB,EAAE,IAAI;IACxB,yBAAyB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC;IACzE,cAAc,EAAE,EAAE;CACnB,CAAC"}
|
|
@@ -4,7 +4,16 @@ import { ScriptResult, PlaywrightConfig } from './types';
|
|
|
4
4
|
*/
|
|
5
5
|
export declare class PlaywrightMCPService {
|
|
6
6
|
private isConnected;
|
|
7
|
+
private logger?;
|
|
7
8
|
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Set a logger callback for capturing execution logs
|
|
11
|
+
*/
|
|
12
|
+
setLogger(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void;
|
|
13
|
+
/**
|
|
14
|
+
* Log a message using the configured logger
|
|
15
|
+
*/
|
|
16
|
+
private log;
|
|
8
17
|
/**
|
|
9
18
|
* Initialize the service
|
|
10
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-mcp-service.d.ts","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;;
|
|
1
|
+
{"version":3,"file":"playwright-mcp-service.d.ts","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAC,CAA8D;;IAM7E;;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,OAAO,CAAC,GAAG;IAOX;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAClI,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YACP,SAAS,CAAC,EAAE,YAAY,CAAC;YACzB,MAAM,EAAE,YAAY,CAAC;YACrB,UAAU,CAAC,EAAE,YAAY,CAAC;SAC3B,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAsBF;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH;;OAEG;YACW,qBAAqB;IAwG7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -10,15 +10,30 @@ class PlaywrightMCPService {
|
|
|
10
10
|
this.isConnected = false;
|
|
11
11
|
// No initialization needed for direct Playwright execution
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Set a logger callback for capturing execution logs
|
|
15
|
+
*/
|
|
16
|
+
setLogger(logger) {
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Log a message using the configured logger
|
|
21
|
+
*/
|
|
22
|
+
log(message, level = 'log') {
|
|
23
|
+
if (this.logger) {
|
|
24
|
+
this.logger(message, level);
|
|
25
|
+
}
|
|
26
|
+
// No console fallback - logs are routed to consumer
|
|
27
|
+
}
|
|
13
28
|
/**
|
|
14
29
|
* Initialize the service
|
|
15
30
|
*/
|
|
16
31
|
async initialize() {
|
|
17
32
|
try {
|
|
18
|
-
|
|
33
|
+
this.log('Initializing Playwright service...');
|
|
19
34
|
// No specific initialization needed for direct Playwright execution
|
|
20
35
|
this.isConnected = true;
|
|
21
|
-
|
|
36
|
+
this.log('Playwright service initialized successfully');
|
|
22
37
|
}
|
|
23
38
|
catch (error) {
|
|
24
39
|
throw new Error(`Failed to initialize Playwright service: ${error}`);
|
|
@@ -76,7 +91,7 @@ class PlaywrightMCPService {
|
|
|
76
91
|
let page;
|
|
77
92
|
try {
|
|
78
93
|
// Use the centralized browser initialization utility
|
|
79
|
-
const browserInstance = await (0, browser_utils_1.initializeBrowser)(config);
|
|
94
|
+
const browserInstance = await (0, browser_utils_1.initializeBrowser)(config, undefined, undefined, this.logger);
|
|
80
95
|
browser = browserInstance.browser;
|
|
81
96
|
context = browserInstance.context;
|
|
82
97
|
page = browserInstance.page;
|
|
@@ -152,10 +167,10 @@ class PlaywrightMCPService {
|
|
|
152
167
|
try {
|
|
153
168
|
// No cleanup needed for direct Playwright execution
|
|
154
169
|
this.isConnected = false;
|
|
155
|
-
|
|
170
|
+
this.log('Playwright service closed');
|
|
156
171
|
}
|
|
157
172
|
catch (error) {
|
|
158
|
-
|
|
173
|
+
this.log(`Error during shutdown: ${error}`, 'error');
|
|
159
174
|
}
|
|
160
175
|
}
|
|
161
176
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-mcp-service.js","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":";;;AACA,yDAA0D;AAE1D;;GAEG;AACH,MAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"playwright-mcp-service.js","sourceRoot":"","sources":["../src/playwright-mcp-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress Reporter Interface
|
|
3
|
+
* Allows consumers to track execution progress (logs, DB writes, etc.)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Execution status for a step
|
|
7
|
+
* Matches scriptservice StepExecutionStatus enum
|
|
8
|
+
*/
|
|
9
|
+
export declare enum StepExecutionStatus {
|
|
10
|
+
SUCCESS = "SUCCESS_STEP_EXECUTION",
|
|
11
|
+
FAILURE = "FAILURE_STEP_EXECUTION",
|
|
12
|
+
IN_PROGRESS = "IN_PROGRESS_STEP_EXECUTION"
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Step progress report - camelCase for TypeScript
|
|
16
|
+
* Structure matches scriptservice's SmartTestExecutionStep / ScriptGenStep
|
|
17
|
+
*/
|
|
18
|
+
export interface StepProgress {
|
|
19
|
+
jobId: string;
|
|
20
|
+
stepId?: string;
|
|
21
|
+
stepNumber: number;
|
|
22
|
+
description: string;
|
|
23
|
+
code?: string;
|
|
24
|
+
screenshotDataUrl?: string;
|
|
25
|
+
status: StepExecutionStatus;
|
|
26
|
+
error?: string;
|
|
27
|
+
wasRepaired?: boolean;
|
|
28
|
+
subActionCount?: number;
|
|
29
|
+
attempt?: number;
|
|
30
|
+
agentIteration?: number;
|
|
31
|
+
agentReasoning?: string;
|
|
32
|
+
agentSelfReflection?: any;
|
|
33
|
+
agentExperiences?: string[];
|
|
34
|
+
agentToolsUsed?: string[];
|
|
35
|
+
agentStatus?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Job progress report - camelCase for TypeScript
|
|
39
|
+
*/
|
|
40
|
+
export interface JobProgress {
|
|
41
|
+
jobId: string;
|
|
42
|
+
status: 'started' | 'in_progress' | 'completed' | 'failed';
|
|
43
|
+
currentStep?: number;
|
|
44
|
+
totalSteps?: number;
|
|
45
|
+
testName?: string;
|
|
46
|
+
script?: string;
|
|
47
|
+
error?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Token usage tracking
|
|
51
|
+
*/
|
|
52
|
+
export interface TokenUsage {
|
|
53
|
+
jobId: string;
|
|
54
|
+
stepNumber?: number;
|
|
55
|
+
iteration?: number;
|
|
56
|
+
inputTokens: number;
|
|
57
|
+
outputTokens: number;
|
|
58
|
+
includesImage: boolean;
|
|
59
|
+
model: string;
|
|
60
|
+
timestamp: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Progress reporter interface for external consumers
|
|
64
|
+
*/
|
|
65
|
+
export interface ProgressReporter {
|
|
66
|
+
/**
|
|
67
|
+
* Called when a step starts, updates, or completes
|
|
68
|
+
* - VS Extension/GitHub: Log to console
|
|
69
|
+
* - Script Service: Write to DB, upload screenshot to GCS
|
|
70
|
+
*/
|
|
71
|
+
onStepProgress?(progress: StepProgress): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Called when overall job status changes
|
|
74
|
+
* - VS Extension/GitHub: Log status
|
|
75
|
+
* - Script Service: Update job in DB
|
|
76
|
+
*/
|
|
77
|
+
onJobProgress?(progress: JobProgress): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Called when script is generated/updated
|
|
80
|
+
*/
|
|
81
|
+
onScriptGenerated?(jobId: string, script: string, testName: string): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Called when script is repaired/updated
|
|
84
|
+
*/
|
|
85
|
+
onScriptRepaired?(jobId: string, originalScript: string, repairedScript: string, confidence: number): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Called when tokens are used (for cost tracking)
|
|
88
|
+
* - VS Extension/GitHub: Log token usage
|
|
89
|
+
* - Script Service: Store in DB for analytics
|
|
90
|
+
*/
|
|
91
|
+
onTokensUsed?(usage: TokenUsage): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Generic logging (for environments that don't need structured progress)
|
|
94
|
+
*/
|
|
95
|
+
log?(message: string, level?: 'log' | 'error' | 'warn'): void;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=progress-reporter.d.ts.map
|
|
@@ -0,0 +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;CAC/D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Progress Reporter Interface
|
|
4
|
+
* Allows consumers to track execution progress (logs, DB writes, etc.)
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.StepExecutionStatus = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Execution status for a step
|
|
10
|
+
* Matches scriptservice StepExecutionStatus enum
|
|
11
|
+
*/
|
|
12
|
+
var StepExecutionStatus;
|
|
13
|
+
(function (StepExecutionStatus) {
|
|
14
|
+
StepExecutionStatus["SUCCESS"] = "SUCCESS_STEP_EXECUTION";
|
|
15
|
+
StepExecutionStatus["FAILURE"] = "FAILURE_STEP_EXECUTION";
|
|
16
|
+
StepExecutionStatus["IN_PROGRESS"] = "IN_PROGRESS_STEP_EXECUTION";
|
|
17
|
+
})(StepExecutionStatus || (exports.StepExecutionStatus = StepExecutionStatus = {}));
|
|
18
|
+
//# sourceMappingURL=progress-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-reporter.js","sourceRoot":"","sources":["../src/progress-reporter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACH,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,yDAAkC,CAAA;IAClC,yDAAkC,CAAA;IAClC,iEAA0C,CAAA;AAC5C,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -14,10 +14,30 @@ export declare const PROMPTS: {
|
|
|
14
14
|
SYSTEM: string;
|
|
15
15
|
USER: (scenario: string) => string;
|
|
16
16
|
};
|
|
17
|
+
GOAL_COMPLETION_CHECK: {
|
|
18
|
+
SYSTEM: string;
|
|
19
|
+
USER: (goalDescription: string, completedActions: string[], pageInfo: any) => string;
|
|
20
|
+
};
|
|
21
|
+
SCREENSHOT_NEED_ASSESSMENT: {
|
|
22
|
+
SYSTEM: string;
|
|
23
|
+
USER: (stepDescription: string, errorMessage: string, attemptCount: number, pageInfo: any) => string;
|
|
24
|
+
};
|
|
17
25
|
PLAYWRIGHT_COMMAND: {
|
|
18
26
|
SYSTEM: string;
|
|
19
27
|
USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
|
|
20
28
|
};
|
|
29
|
+
VISION_DIAGNOSTIC_ANALYSIS: {
|
|
30
|
+
SYSTEM: string;
|
|
31
|
+
USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
|
|
32
|
+
};
|
|
33
|
+
PLAYWRIGHT_COMMAND_WITH_SUPERVISOR: {
|
|
34
|
+
SYSTEM: string;
|
|
35
|
+
USER: (stepDescription: string, supervisorInstructions: string, supervisorAnalysis: string, elementsFound: string[], elementsNotFound: string[], pageInfo: any) => string;
|
|
36
|
+
};
|
|
37
|
+
PLAYWRIGHT_COMMAND_WITH_VISION: {
|
|
38
|
+
SYSTEM: string;
|
|
39
|
+
USER: (stepDescription: string, pageInfo: any, previousCommands: string, attemptHistory: string, errorContext: string) => string;
|
|
40
|
+
};
|
|
21
41
|
SCRIPT_PARSING: {
|
|
22
42
|
SYSTEM: string;
|
|
23
43
|
USER: (script: string) => string;
|
|
@@ -34,5 +54,9 @@ export declare const PROMPTS: {
|
|
|
34
54
|
SYSTEM: string;
|
|
35
55
|
USER: (originalScript: string, updatedScript: string, newRepairAdvice: string) => string;
|
|
36
56
|
};
|
|
57
|
+
SCRIPT_CLEANUP: {
|
|
58
|
+
SYSTEM: string;
|
|
59
|
+
USER: (script: string) => string;
|
|
60
|
+
};
|
|
37
61
|
};
|
|
38
62
|
//# sourceMappingURL=prompts.d.ts.map
|