testchimp-runner-core 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/execution-service.d.ts +1 -4
  2. package/dist/execution-service.d.ts.map +1 -1
  3. package/dist/execution-service.js +155 -468
  4. package/dist/execution-service.js.map +1 -1
  5. package/dist/index.d.ts +3 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +11 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/llm-facade.d.ts.map +1 -1
  10. package/dist/llm-facade.js +7 -7
  11. package/dist/llm-facade.js.map +1 -1
  12. package/dist/llm-provider.d.ts +9 -0
  13. package/dist/llm-provider.d.ts.map +1 -1
  14. package/dist/model-constants.d.ts +16 -5
  15. package/dist/model-constants.d.ts.map +1 -1
  16. package/dist/model-constants.js +17 -6
  17. package/dist/model-constants.js.map +1 -1
  18. package/dist/orchestrator/decision-parser.d.ts +18 -0
  19. package/dist/orchestrator/decision-parser.d.ts.map +1 -0
  20. package/dist/orchestrator/decision-parser.js +127 -0
  21. package/dist/orchestrator/decision-parser.js.map +1 -0
  22. package/dist/orchestrator/index.d.ts +4 -2
  23. package/dist/orchestrator/index.d.ts.map +1 -1
  24. package/dist/orchestrator/index.js +15 -2
  25. package/dist/orchestrator/index.js.map +1 -1
  26. package/dist/orchestrator/orchestrator-agent.d.ts +17 -22
  27. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -1
  28. package/dist/orchestrator/orchestrator-agent.js +708 -577
  29. package/dist/orchestrator/orchestrator-agent.js.map +1 -1
  30. package/dist/orchestrator/orchestrator-prompts.d.ts +32 -0
  31. package/dist/orchestrator/orchestrator-prompts.d.ts.map +1 -0
  32. package/dist/orchestrator/orchestrator-prompts.js +737 -0
  33. package/dist/orchestrator/orchestrator-prompts.js.map +1 -0
  34. package/dist/orchestrator/page-som-handler.d.ts +106 -0
  35. package/dist/orchestrator/page-som-handler.d.ts.map +1 -0
  36. package/dist/orchestrator/page-som-handler.js +1353 -0
  37. package/dist/orchestrator/page-som-handler.js.map +1 -0
  38. package/dist/orchestrator/som-types.d.ts +149 -0
  39. package/dist/orchestrator/som-types.d.ts.map +1 -0
  40. package/dist/orchestrator/som-types.js +87 -0
  41. package/dist/orchestrator/som-types.js.map +1 -0
  42. package/dist/orchestrator/tool-registry.d.ts +2 -0
  43. package/dist/orchestrator/tool-registry.d.ts.map +1 -1
  44. package/dist/orchestrator/tool-registry.js.map +1 -1
  45. package/dist/orchestrator/tools/index.d.ts +5 -1
  46. package/dist/orchestrator/tools/index.d.ts.map +1 -1
  47. package/dist/orchestrator/tools/index.js +9 -2
  48. package/dist/orchestrator/tools/index.js.map +1 -1
  49. package/dist/orchestrator/tools/refresh-som-markers.d.ts +12 -0
  50. package/dist/orchestrator/tools/refresh-som-markers.d.ts.map +1 -0
  51. package/dist/orchestrator/tools/refresh-som-markers.js +64 -0
  52. package/dist/orchestrator/tools/refresh-som-markers.js.map +1 -0
  53. package/dist/orchestrator/tools/verify-action-result.d.ts +17 -0
  54. package/dist/orchestrator/tools/verify-action-result.d.ts.map +1 -0
  55. package/dist/orchestrator/tools/verify-action-result.js +140 -0
  56. package/dist/orchestrator/tools/verify-action-result.js.map +1 -0
  57. package/dist/orchestrator/tools/view-previous-screenshot.d.ts +15 -0
  58. package/dist/orchestrator/tools/view-previous-screenshot.d.ts.map +1 -0
  59. package/dist/orchestrator/tools/view-previous-screenshot.js +92 -0
  60. package/dist/orchestrator/tools/view-previous-screenshot.js.map +1 -0
  61. package/dist/orchestrator/types.d.ts +49 -1
  62. package/dist/orchestrator/types.d.ts.map +1 -1
  63. package/dist/orchestrator/types.js +11 -1
  64. package/dist/orchestrator/types.js.map +1 -1
  65. package/dist/prompts.d.ts.map +1 -1
  66. package/dist/prompts.js +40 -34
  67. package/dist/prompts.js.map +1 -1
  68. package/dist/scenario-service.d.ts +5 -0
  69. package/dist/scenario-service.d.ts.map +1 -1
  70. package/dist/scenario-service.js +17 -0
  71. package/dist/scenario-service.js.map +1 -1
  72. package/dist/scenario-worker-class.d.ts +4 -0
  73. package/dist/scenario-worker-class.d.ts.map +1 -1
  74. package/dist/scenario-worker-class.js +21 -3
  75. package/dist/scenario-worker-class.js.map +1 -1
  76. package/dist/testing/agent-tester.d.ts +35 -0
  77. package/dist/testing/agent-tester.d.ts.map +1 -0
  78. package/dist/testing/agent-tester.js +84 -0
  79. package/dist/testing/agent-tester.js.map +1 -0
  80. package/dist/testing/ref-translator-tester.d.ts +44 -0
  81. package/dist/testing/ref-translator-tester.d.ts.map +1 -0
  82. package/dist/testing/ref-translator-tester.js +104 -0
  83. package/dist/testing/ref-translator-tester.js.map +1 -0
  84. package/dist/utils/coordinate-converter.d.ts +32 -0
  85. package/dist/utils/coordinate-converter.d.ts.map +1 -0
  86. package/dist/utils/coordinate-converter.js +130 -0
  87. package/dist/utils/coordinate-converter.js.map +1 -0
  88. package/dist/utils/hierarchical-selector.d.ts +47 -0
  89. package/dist/utils/hierarchical-selector.d.ts.map +1 -0
  90. package/dist/utils/hierarchical-selector.js +212 -0
  91. package/dist/utils/hierarchical-selector.js.map +1 -0
  92. package/dist/utils/page-info-retry.d.ts +14 -0
  93. package/dist/utils/page-info-retry.d.ts.map +1 -0
  94. package/dist/utils/page-info-retry.js +60 -0
  95. package/dist/utils/page-info-retry.js.map +1 -0
  96. package/dist/utils/page-info-utils.d.ts +1 -0
  97. package/dist/utils/page-info-utils.d.ts.map +1 -1
  98. package/dist/utils/page-info-utils.js +46 -18
  99. package/dist/utils/page-info-utils.js.map +1 -1
  100. package/dist/utils/ref-attacher.d.ts +21 -0
  101. package/dist/utils/ref-attacher.d.ts.map +1 -0
  102. package/dist/utils/ref-attacher.js +149 -0
  103. package/dist/utils/ref-attacher.js.map +1 -0
  104. package/dist/utils/ref-translator.d.ts +49 -0
  105. package/dist/utils/ref-translator.d.ts.map +1 -0
  106. package/dist/utils/ref-translator.js +276 -0
  107. package/dist/utils/ref-translator.js.map +1 -0
  108. package/package.json +1 -1
  109. package/plandocs/BEFORE_AFTER_VERIFICATION.md +148 -0
  110. package/plandocs/COORDINATE_MODE_DIAGNOSIS.md +144 -0
  111. package/plandocs/IMPLEMENTATION_STATUS.md +108 -0
  112. package/plandocs/PHASE_1_COMPLETE.md +165 -0
  113. package/plandocs/PHASE_1_SUMMARY.md +184 -0
  114. package/plandocs/PROMPT_OPTIMIZATION_ANALYSIS.md +120 -0
  115. package/plandocs/PROMPT_SANITY_CHECK.md +120 -0
  116. package/plandocs/SESSION_SUMMARY_v0.0.33.md +151 -0
  117. package/plandocs/TROUBLESHOOTING_SESSION.md +72 -0
  118. package/plandocs/VISUAL_AGENT_EVOLUTION_PLAN.md +396 -0
  119. package/plandocs/WHATS_NEW_v0.0.33.md +183 -0
  120. package/plandocs/exploratory-mode-support-v2.plan.md +953 -0
  121. package/plandocs/exploratory-mode-support.plan.md +928 -0
  122. package/plandocs/journey-id-tracking-addendum.md +227 -0
  123. package/src/execution-service.ts +179 -596
  124. package/src/index.ts +10 -0
  125. package/src/llm-facade.ts +8 -8
  126. package/src/llm-provider.ts +11 -1
  127. package/src/model-constants.ts +17 -5
  128. package/src/orchestrator/decision-parser.ts +139 -0
  129. package/src/orchestrator/index.ts +27 -2
  130. package/src/orchestrator/orchestrator-agent.ts +868 -623
  131. package/src/orchestrator/orchestrator-prompts.ts +786 -0
  132. package/src/orchestrator/page-som-handler.ts +1565 -0
  133. package/src/orchestrator/som-types.ts +188 -0
  134. package/src/orchestrator/tool-registry.ts +2 -0
  135. package/src/orchestrator/tools/index.ts +5 -1
  136. package/src/orchestrator/tools/refresh-som-markers.ts +69 -0
  137. package/src/orchestrator/tools/verify-action-result.ts +159 -0
  138. package/src/orchestrator/tools/view-previous-screenshot.ts +103 -0
  139. package/src/orchestrator/types.ts +95 -4
  140. package/src/prompts.ts +40 -34
  141. package/src/scenario-service.ts +20 -0
  142. package/src/scenario-worker-class.ts +30 -4
  143. package/src/utils/coordinate-converter.ts +162 -0
  144. package/src/utils/page-info-retry.ts +65 -0
  145. package/src/utils/page-info-utils.ts +53 -18
  146. package/testchimp-runner-core-0.0.35.tgz +0 -0
  147. /package/{CREDIT_CALLBACK_ARCHITECTURE.md → plandocs/CREDIT_CALLBACK_ARCHITECTURE.md} +0 -0
  148. /package/{INTEGRATION_COMPLETE.md → plandocs/INTEGRATION_COMPLETE.md} +0 -0
  149. /package/{VISION_DIAGNOSTICS_IMPROVEMENTS.md → plandocs/VISION_DIAGNOSTICS_IMPROVEMENTS.md} +0 -0
  150. /package/{RELEASE_0.0.26.md → releasenotes/RELEASE_0.0.26.md} +0 -0
  151. /package/{RELEASE_0.0.27.md → releasenotes/RELEASE_0.0.27.md} +0 -0
  152. /package/{RELEASE_0.0.28.md → releasenotes/RELEASE_0.0.28.md} +0 -0
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * Decision Parser Utility
4
+ * Parses and validates agent decisions from LLM responses
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DecisionParser = void 0;
8
+ const som_types_1 = require("./som-types");
9
+ class DecisionParser {
10
+ constructor(logger) {
11
+ this.logger = logger;
12
+ }
13
+ /**
14
+ * Parse agent decision from LLM response
15
+ */
16
+ parse(response) {
17
+ try {
18
+ // Extract JSON from response
19
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
20
+ if (!jsonMatch) {
21
+ this.logger?.(`[DecisionParser] ✗ No JSON found in LLM response`, 'error');
22
+ this.logger?.(`[DecisionParser] 📄 FULL LLM RESPONSE:\n${response}`, 'error');
23
+ throw new Error('No JSON found in response');
24
+ }
25
+ const parsed = JSON.parse(jsonMatch[0]);
26
+ // Validate required fields
27
+ // Accept either "reasoning" or "statusReasoning" (LLMs sometimes only provide one)
28
+ if (!parsed.status || (!parsed.reasoning && !parsed.statusReasoning)) {
29
+ this.logger?.(`[DecisionParser] ✗ Missing required fields in parsed JSON`, 'error');
30
+ this.logger?.(`[DecisionParser] 📄 FULL LLM RESPONSE:\n${response}`, 'error');
31
+ this.logger?.(`[DecisionParser] 📄 PARSED JSON:\n${JSON.stringify(parsed, null, 2)}`, 'error');
32
+ this.logger?.(`[DecisionParser] ❌ Has status: ${!!parsed.status}, Has reasoning: ${!!parsed.reasoning}, Has statusReasoning: ${!!parsed.statusReasoning}`, 'error');
33
+ throw new Error('Missing required fields: status and (reasoning or statusReasoning)');
34
+ }
35
+ // Normalize: if reasoning is missing but statusReasoning exists, use statusReasoning as reasoning
36
+ if (!parsed.reasoning && parsed.statusReasoning) {
37
+ parsed.reasoning = parsed.statusReasoning;
38
+ }
39
+ return parsed;
40
+ }
41
+ catch (error) {
42
+ this.logger?.(`[DecisionParser] ✗ Failed to parse agent decision: ${error.message}`, 'error');
43
+ // Only log full response if not already logged above
44
+ if (!error.message.includes('Missing required fields') && !error.message.includes('No JSON found')) {
45
+ this.logger?.(`[DecisionParser] 📄 FULL LLM RESPONSE:\n${response}`, 'error');
46
+ }
47
+ // Return fallback
48
+ return {
49
+ status: 'stuck',
50
+ statusReasoning: 'Failed to parse agent response',
51
+ reasoning: `Parse error: ${error.message}`
52
+ };
53
+ }
54
+ }
55
+ /**
56
+ * Log agent decision for debugging
57
+ */
58
+ log(decision, iteration) {
59
+ this.logger?.(`[Orchestrator] 💭 REASONING: ${decision.reasoning}`);
60
+ if (decision.selfReflection) {
61
+ this.logger?.(`[Orchestrator] 🧠 SELF-REFLECTION:`);
62
+ this.logger?.(`[Orchestrator] Next: ${decision.selfReflection.guidanceForNext}`);
63
+ if (decision.selfReflection.detectingLoop) {
64
+ this.logger?.(`[Orchestrator] 🔄 LOOP DETECTED: ${decision.selfReflection.loopReasoning}`, 'warn');
65
+ }
66
+ }
67
+ if (decision.toolCalls && decision.toolCalls.length > 0) {
68
+ this.logger?.(`[Orchestrator] 🔧 TOOLS: ${decision.toolCalls.map(t => t.name).join(', ')}`);
69
+ if (decision.toolReasoning) {
70
+ this.logger?.(`[Orchestrator] 📋 Why: ${decision.toolReasoning}`);
71
+ }
72
+ }
73
+ if (decision.blockerDetected) {
74
+ this.logger?.(`[Orchestrator] 🚧 BLOCKER: ${decision.blockerDetected.description}`, 'warn');
75
+ this.logger?.(`[Orchestrator] 🧹 Clearing with ${decision.blockerDetected.clearingCommands.length} command(s)`);
76
+ }
77
+ if (decision.stepReEvaluation?.detected) {
78
+ this.logger?.(`[Orchestrator] 🔍 STEP RE-EVALUATION: ${decision.stepReEvaluation.issue}`, 'warn');
79
+ this.logger?.(`[Orchestrator] 📝 Explanation: ${decision.stepReEvaluation.explanation}`);
80
+ }
81
+ if (decision.commands && decision.commands.length > 0) {
82
+ this.logger?.(`[Orchestrator] 📝 COMMANDS (${decision.commands.length}):`);
83
+ decision.commands.slice(0, 3).forEach((cmd, i) => {
84
+ // Handle string commands (standard mode), SomCommand, and SomVerification objects
85
+ if (typeof cmd === 'string') {
86
+ this.logger?.(`[Orchestrator] ${i + 1}. ${cmd.substring(0, 80)}...`);
87
+ }
88
+ else if ((0, som_types_1.isSomVerification)(cmd)) {
89
+ const ref = cmd.elementRef || cmd.selector || 'unknown';
90
+ this.logger?.(`[Orchestrator] ${i + 1}. [VERIFY] ${cmd.verificationType} on ${ref}: ${cmd.expected}`);
91
+ }
92
+ else if ((0, som_types_1.isSomCommand)(cmd)) {
93
+ this.logger?.(`[Orchestrator] ${i + 1}. [ACTION] ${cmd.action} on ${cmd.elementRef || 'coord'}`);
94
+ }
95
+ else {
96
+ this.logger?.(`[Orchestrator] ${i + 1}. ${JSON.stringify(cmd).substring(0, 80)}...`);
97
+ }
98
+ });
99
+ if (decision.commands.length > 3) {
100
+ this.logger?.(`[Orchestrator] ... and ${decision.commands.length - 3} more`);
101
+ }
102
+ if (decision.commandReasoning) {
103
+ this.logger?.(`[Orchestrator] 💡 Why: ${decision.commandReasoning}`);
104
+ }
105
+ }
106
+ // Log meta-learning suggestions with clear demarcations
107
+ if (decision.debugInfo?.suggestedPromptUpdates) {
108
+ this.logger?.(``, 'warn');
109
+ this.logger?.(`═══════════════════════════════════════════════════════════════`, 'warn');
110
+ this.logger?.(`[Orchestrator] 🧠 META-LEARNING SUGGESTION FROM AGENT`, 'warn');
111
+ this.logger?.(`═══════════════════════════════════════════════════════════════`, 'warn');
112
+ this.logger?.(``, 'warn');
113
+ this.logger?.(`SUGGESTED PROMPT UPDATE:`, 'warn');
114
+ this.logger?.(` ${decision.debugInfo.suggestedPromptUpdates}`, 'warn');
115
+ this.logger?.(``, 'warn');
116
+ if (decision.debugInfo.reasoning) {
117
+ this.logger?.(`REASONING:`, 'warn');
118
+ this.logger?.(` ${decision.debugInfo.reasoning}`, 'warn');
119
+ this.logger?.(``, 'warn');
120
+ }
121
+ this.logger?.(`═══════════════════════════════════════════════════════════════`, 'warn');
122
+ this.logger?.(``, 'warn');
123
+ }
124
+ }
125
+ }
126
+ exports.DecisionParser = DecisionParser;
127
+ //# sourceMappingURL=decision-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-parser.js","sourceRoot":"","sources":["../../src/orchestrator/decision-parser.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@
2
2
  * Orchestrator Module Exports
3
3
  */
4
4
  export { OrchestratorAgent } from './orchestrator-agent';
5
+ export { PageSoMHandler } from './page-som-handler';
5
6
  export { ToolRegistry, Tool, ToolParameter, ToolExecutionContext } from './tool-registry';
6
- export { TakeScreenshotTool, RecallHistoryTool, InspectPageTool, CheckPageReadyTool, ExtractDataTool } from './tools';
7
- export { AgentConfig, AgentContext, AgentDecision, JourneyMemory, MemoryStep, OrchestratorStepResult, SelfReflection, ToolCall, ToolResult, DEFAULT_AGENT_CONFIG } from './types';
7
+ export { TakeScreenshotTool, ViewPreviousScreenshotTool, RefreshSomMarkersTool, RecallHistoryTool, InspectPageTool, CheckPageReadyTool, ExtractDataTool, VerifyActionResultTool } from './tools';
8
+ export { AgentConfig, AgentContext, AgentDecision, JourneyMemory, MemoryStep, OrchestratorStepResult, SelfReflection, ToolCall, ToolResult, ExplorationMode, DEFAULT_AGENT_CONFIG } from './types';
9
+ export { SomCommand, SomElement, SemanticCommandResult, CommandRunStatus, CommandAttempt, DomMutation, InteractionAction, Coordinate, TypedSelector, SomVerification, VerificationType, SomCommandOrVerification, isSomVerification, isSomCommand } from './som-types';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG1F,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,oBAAoB,EACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG1F,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACb,MAAM,aAAa,CAAC"}
@@ -3,21 +3,34 @@
3
3
  * Orchestrator Module Exports
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_AGENT_CONFIG = exports.ExtractDataTool = exports.CheckPageReadyTool = exports.InspectPageTool = exports.RecallHistoryTool = exports.TakeScreenshotTool = exports.ToolRegistry = exports.OrchestratorAgent = void 0;
6
+ exports.isSomCommand = exports.isSomVerification = exports.VerificationType = exports.InteractionAction = exports.CommandRunStatus = exports.DEFAULT_AGENT_CONFIG = exports.VerifyActionResultTool = exports.ExtractDataTool = exports.CheckPageReadyTool = exports.InspectPageTool = exports.RecallHistoryTool = exports.RefreshSomMarkersTool = exports.ViewPreviousScreenshotTool = exports.TakeScreenshotTool = exports.ToolRegistry = exports.PageSoMHandler = exports.OrchestratorAgent = void 0;
7
7
  // Core orchestrator
8
8
  var orchestrator_agent_1 = require("./orchestrator-agent");
9
9
  Object.defineProperty(exports, "OrchestratorAgent", { enumerable: true, get: function () { return orchestrator_agent_1.OrchestratorAgent; } });
10
+ // SoM (Set-of-Marks) handler
11
+ var page_som_handler_1 = require("./page-som-handler");
12
+ Object.defineProperty(exports, "PageSoMHandler", { enumerable: true, get: function () { return page_som_handler_1.PageSoMHandler; } });
10
13
  // Tool system
11
14
  var tool_registry_1 = require("./tool-registry");
12
15
  Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return tool_registry_1.ToolRegistry; } });
13
- // 5 information-gathering tools (state changes via Playwright commands)
16
+ // 8 information-gathering tools (state changes via Playwright commands)
14
17
  var tools_1 = require("./tools");
15
18
  Object.defineProperty(exports, "TakeScreenshotTool", { enumerable: true, get: function () { return tools_1.TakeScreenshotTool; } });
19
+ Object.defineProperty(exports, "ViewPreviousScreenshotTool", { enumerable: true, get: function () { return tools_1.ViewPreviousScreenshotTool; } });
20
+ Object.defineProperty(exports, "RefreshSomMarkersTool", { enumerable: true, get: function () { return tools_1.RefreshSomMarkersTool; } });
16
21
  Object.defineProperty(exports, "RecallHistoryTool", { enumerable: true, get: function () { return tools_1.RecallHistoryTool; } });
17
22
  Object.defineProperty(exports, "InspectPageTool", { enumerable: true, get: function () { return tools_1.InspectPageTool; } });
18
23
  Object.defineProperty(exports, "CheckPageReadyTool", { enumerable: true, get: function () { return tools_1.CheckPageReadyTool; } });
19
24
  Object.defineProperty(exports, "ExtractDataTool", { enumerable: true, get: function () { return tools_1.ExtractDataTool; } });
25
+ Object.defineProperty(exports, "VerifyActionResultTool", { enumerable: true, get: function () { return tools_1.VerifyActionResultTool; } });
20
26
  // Types
21
27
  var types_1 = require("./types");
22
28
  Object.defineProperty(exports, "DEFAULT_AGENT_CONFIG", { enumerable: true, get: function () { return types_1.DEFAULT_AGENT_CONFIG; } });
29
+ // SoM Types
30
+ var som_types_1 = require("./som-types");
31
+ Object.defineProperty(exports, "CommandRunStatus", { enumerable: true, get: function () { return som_types_1.CommandRunStatus; } });
32
+ Object.defineProperty(exports, "InteractionAction", { enumerable: true, get: function () { return som_types_1.InteractionAction; } });
33
+ Object.defineProperty(exports, "VerificationType", { enumerable: true, get: function () { return som_types_1.VerificationType; } });
34
+ Object.defineProperty(exports, "isSomVerification", { enumerable: true, get: function () { return som_types_1.isSomVerification; } });
35
+ Object.defineProperty(exports, "isSomCommand", { enumerable: true, get: function () { return som_types_1.isSomCommand; } });
23
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oBAAoB;AACpB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iDAA0F;AAAjF,6GAAA,YAAY,OAAA;AAErB,wEAAwE;AACxE,iCAMiB;AALf,2GAAA,kBAAkB,OAAA;AAClB,0GAAA,iBAAiB,OAAA;AACjB,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AAGjB,QAAQ;AACR,iCAWiB;AADf,6GAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oBAAoB;AACpB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAE1B,6BAA6B;AAC7B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AAEvB,cAAc;AACd,iDAA0F;AAAjF,6GAAA,YAAY,OAAA;AAErB,wEAAwE;AACxE,iCASiB;AARf,2GAAA,kBAAkB,OAAA;AAClB,mHAAA,0BAA0B,OAAA;AAC1B,8GAAA,qBAAqB,OAAA;AACrB,0GAAA,iBAAiB,OAAA;AACjB,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,+GAAA,sBAAsB,OAAA;AAGxB,QAAQ;AACR,iCAYiB;AADf,6GAAA,oBAAoB,OAAA;AAGtB,YAAY;AACZ,yCAeqB;AAXnB,6GAAA,gBAAgB,OAAA;AAGhB,8GAAA,iBAAiB,OAAA;AAIjB,6GAAA,gBAAgB,OAAA;AAEhB,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA"}
@@ -5,7 +5,7 @@
5
5
  import { LLMFacade } from '../llm-facade';
6
6
  import { ProgressReporter } from '../progress-reporter';
7
7
  import { ToolRegistry } from './tool-registry';
8
- import { AgentConfig, JourneyMemory, OrchestratorStepResult } from './types';
8
+ import { AgentConfig, JourneyMemory, OrchestratorStepResult, ExplorationMode } from './types';
9
9
  /**
10
10
  * Orchestrator Agent - manages step execution with tool use and memory
11
11
  */
@@ -16,12 +16,16 @@ export declare class OrchestratorAgent {
16
16
  private config;
17
17
  private logger?;
18
18
  private debugMode;
19
+ private decisionParser;
20
+ private somHandler?;
21
+ private previousSomScreenshot?;
19
22
  constructor(llmFacade: LLMFacade, toolRegistry: ToolRegistry, config?: Partial<AgentConfig>, progressReporter?: ProgressReporter, logger?: (message: string, level?: 'log' | 'error' | 'warn' | 'debug') => void, debugMode?: boolean);
20
23
  setDebugMode(enabled: boolean): void;
21
24
  /**
22
25
  * Execute a single step of the scenario
23
26
  */
24
- executeStep(page: any, stepDescription: string, stepNumber: number, totalSteps: number, scenarioSteps: string[], memory: JourneyMemory, jobId: string): Promise<OrchestratorStepResult>;
27
+ executeStep(page: any, stepDescription: string, stepNumber: number, totalSteps: number, scenarioSteps: string[], memory: JourneyMemory, jobId: string, priorSteps?: string[], // NEW: For repair mode (undefined for script gen)
28
+ nextSteps?: string[]): Promise<OrchestratorStepResult>;
25
29
  /**
26
30
  * Build context for agent
27
31
  */
@@ -30,37 +34,28 @@ export declare class OrchestratorAgent {
30
34
  * Call agent to make decision
31
35
  */
32
36
  private callAgent;
33
- /**
34
- * Build system prompt with tool descriptions
35
- */
36
- private buildSystemPrompt;
37
- /**
38
- * Build user prompt with context
39
- */
40
- private buildUserPrompt;
41
- /**
42
- * Parse agent decision from LLM response
43
- */
44
- private parseAgentDecision;
45
37
  /**
46
38
  * Execute tools
47
39
  */
48
40
  private executeTools;
49
41
  /**
50
- * Execute commands sequentially with SHARED context (variables persist across commands)
51
- */
52
- private executeCommandsSequentially;
53
- /**
54
- * Execute a single command
42
+ * Parse SomCommand from command object
55
43
  */
56
- private executeCommand;
44
+ private parseSomCommand;
57
45
  /**
58
- * Log agent decision
46
+ * Execute commands (mix of ref and playwright commands)
59
47
  */
60
- private logAgentDecision;
48
+ private executeCommands;
61
49
  /**
62
50
  * Report step progress
63
51
  */
64
52
  private reportStepProgress;
53
+ /**
54
+ * Execute exploration mode - agent autonomously explores to achieve journey goal
55
+ * Fires onStepProgress callbacks for each autonomous action (transparent to caller)
56
+ */
57
+ executeExploration(page: any, explorationConfig: ExplorationMode, jobId: string): Promise<OrchestratorStepResult>;
58
+ private buildExploratoryContext;
59
+ private callExploratoryAgent;
65
60
  }
66
61
  //# sourceMappingURL=orchestrator-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-agent.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAmC,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AAErE,OAAO,EACL,WAAW,EAGX,aAAa,EAEb,sBAAsB,EAGvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAwE;IACvF,OAAO,CAAC,SAAS,CAAkB;gBAGjC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,EAC9E,SAAS,CAAC,EAAE,OAAO;IAUrB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIpC;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC;IAgLlC;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,SAAS;IAsDvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2QzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmIvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,2BAA2B;IAoIzC;;OAEG;YACW,cAAc;IAc5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4CxB;;OAEG;YACW,kBAAkB;CA0BjC"}
1
+ {"version":3,"file":"orchestrator-agent.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAmC,MAAM,sBAAsB,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AAErE,OAAO,EACL,WAAW,EAGX,aAAa,EAEb,sBAAsB,EAItB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAwE;IACvF,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,qBAAqB,CAAC,CAAS;gBAGrC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,EAC9E,SAAS,CAAC,EAAE,OAAO;IAgBrB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIpC;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EAAE,EAAK,kDAAkD;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,sBAAsB,CAAC;IAgYlC;;OAEG;YACW,iBAAiB;IAgF/B;;OAEG;YACW,SAAS;IAsFvB;;OAEG;YACW,YAAY;IAoC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;YACW,eAAe;IAsP7B;;OAEG;YACW,kBAAkB;IA2BhC;;;OAGG;IACG,kBAAkB,CACtB,IAAI,EAAE,GAAG,EACT,iBAAiB,EAAE,eAAe,EAClC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC;YAoKpB,uBAAuB;YAkEvB,oBAAoB;CAoDnC"}