@timetotest/cli 0.2.3 → 0.2.4

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 (118) hide show
  1. package/dist/package.json +8 -5
  2. package/dist/src/commands/chat/ChatApp.js +30 -42
  3. package/dist/src/commands/chat/ChatApp.js.map +1 -1
  4. package/dist/src/commands/chat/components/Banner.js +1 -1
  5. package/dist/src/commands/chat/components/ChatInput.js +39 -17
  6. package/dist/src/commands/chat/components/ChatInput.js.map +1 -1
  7. package/dist/src/commands/chat/components/MessageBubble.js +2 -1
  8. package/dist/src/commands/chat/components/MessageBubble.js.map +1 -1
  9. package/dist/src/commands/chat-ink.js +118 -9
  10. package/dist/src/commands/chat-ink.js.map +1 -1
  11. package/dist/src/commands/start-test.js +61 -0
  12. package/dist/src/commands/start-test.js.map +1 -1
  13. package/dist/src/commands/stream/StreamApp.js +127 -0
  14. package/dist/src/commands/stream/StreamApp.js.map +1 -0
  15. package/dist/src/commands/stream.js +43 -8
  16. package/dist/src/commands/stream.js.map +1 -1
  17. package/dist/src/commands/test/TestRunApp.js +183 -0
  18. package/dist/src/commands/test/TestRunApp.js.map +1 -0
  19. package/dist/src/commands/test.js +97 -0
  20. package/dist/src/commands/test.js.map +1 -1
  21. package/dist/src/lib/agent-orchestrator.js +5 -0
  22. package/dist/src/lib/agent-orchestrator.js.map +1 -1
  23. package/dist/src/lib/local-tools/ui/playwright-mcp.js +1 -1
  24. package/dist/src/lib/tui/ink/theme.js +21 -0
  25. package/dist/src/lib/tui/ink/theme.js.map +1 -0
  26. package/package.json +8 -5
  27. package/dist/src/commands/ask/AskApp.js +0 -121
  28. package/dist/src/commands/ask/AskApp.js.map +0 -1
  29. package/dist/src/commands/ask/components/AssistantResponse.js +0 -31
  30. package/dist/src/commands/ask/components/AssistantResponse.js.map +0 -1
  31. package/dist/src/commands/ask/components/Banner.js +0 -15
  32. package/dist/src/commands/ask/components/Banner.js.map +0 -1
  33. package/dist/src/commands/ask/components/ChatInput.js +0 -93
  34. package/dist/src/commands/ask/components/ChatInput.js.map +0 -1
  35. package/dist/src/commands/ask/components/Divider.js +0 -17
  36. package/dist/src/commands/ask/components/Divider.js.map +0 -1
  37. package/dist/src/commands/ask/components/IntroTips.js +0 -19
  38. package/dist/src/commands/ask/components/IntroTips.js.map +0 -1
  39. package/dist/src/commands/ask/components/MessageBubble.js +0 -47
  40. package/dist/src/commands/ask/components/MessageBubble.js.map +0 -1
  41. package/dist/src/commands/ask/components/SessionInfo.js +0 -20
  42. package/dist/src/commands/ask/components/SessionInfo.js.map +0 -1
  43. package/dist/src/commands/ask/components/StatusIndicator.js +0 -67
  44. package/dist/src/commands/ask/components/StatusIndicator.js.map +0 -1
  45. package/dist/src/commands/ask-ink.js +0 -380
  46. package/dist/src/commands/ask-ink.js.map +0 -1
  47. package/dist/src/commands/ask.js +0 -991
  48. package/dist/src/commands/ask.js.map +0 -1
  49. package/dist/src/commands/chat/components/Divider.js +0 -7
  50. package/dist/src/commands/chat/components/Divider.js.map +0 -1
  51. package/dist/src/commands/chat/components/SessionInfo.js +0 -11
  52. package/dist/src/commands/chat/components/SessionInfo.js.map +0 -1
  53. package/dist/src/commands/chat.js +0 -82
  54. package/dist/src/commands/chat.js.map +0 -1
  55. package/dist/src/lib/legacy-chat-runner.js +0 -37
  56. package/dist/src/lib/legacy-chat-runner.js.map +0 -1
  57. package/dist/src/lib/local-tools/ui/click-element.js +0 -105
  58. package/dist/src/lib/local-tools/ui/click-element.js.map +0 -1
  59. package/dist/src/lib/local-tools/ui/dom-rag.js +0 -201
  60. package/dist/src/lib/local-tools/ui/dom-rag.js.map +0 -1
  61. package/dist/src/lib/local-tools/ui/find-element.js +0 -31
  62. package/dist/src/lib/local-tools/ui/find-element.js.map +0 -1
  63. package/dist/src/lib/local-tools/ui/hover-element.js +0 -94
  64. package/dist/src/lib/local-tools/ui/hover-element.js.map +0 -1
  65. package/dist/src/lib/local-tools/ui/manage-tab.js +0 -65
  66. package/dist/src/lib/local-tools/ui/manage-tab.js.map +0 -1
  67. package/dist/src/lib/local-tools/ui/navigate.js +0 -35
  68. package/dist/src/lib/local-tools/ui/navigate.js.map +0 -1
  69. package/dist/src/lib/local-tools/ui/page-discovery.js +0 -32
  70. package/dist/src/lib/local-tools/ui/page-discovery.js.map +0 -1
  71. package/dist/src/lib/local-tools/ui/screenshot.js +0 -19
  72. package/dist/src/lib/local-tools/ui/screenshot.js.map +0 -1
  73. package/dist/src/lib/local-tools/ui/search-interactive-elements.js +0 -18
  74. package/dist/src/lib/local-tools/ui/search-interactive-elements.js.map +0 -1
  75. package/dist/src/lib/local-tools/ui/selector-resolver.js +0 -153
  76. package/dist/src/lib/local-tools/ui/selector-resolver.js.map +0 -1
  77. package/dist/src/lib/local-tools/ui/type-text.js +0 -40
  78. package/dist/src/lib/local-tools/ui/type-text.js.map +0 -1
  79. package/dist/src/lib/tui/components/AskIntro.js +0 -6
  80. package/dist/src/lib/tui/components/AskIntro.js.map +0 -1
  81. package/dist/src/lib/tui/components/Banner.js +0 -15
  82. package/dist/src/lib/tui/components/Banner.js.map +0 -1
  83. package/dist/src/lib/tui/components/Divider.js +0 -17
  84. package/dist/src/lib/tui/components/Divider.js.map +0 -1
  85. package/dist/src/lib/tui/components/EventLine.js +0 -110
  86. package/dist/src/lib/tui/components/EventLine.js.map +0 -1
  87. package/dist/src/lib/tui/components/Header.js +0 -15
  88. package/dist/src/lib/tui/components/Header.js.map +0 -1
  89. package/dist/src/lib/tui/components/InputBox.js +0 -9
  90. package/dist/src/lib/tui/components/InputBox.js.map +0 -1
  91. package/dist/src/lib/tui/components/Mapping.js +0 -8
  92. package/dist/src/lib/tui/components/Mapping.js.map +0 -1
  93. package/dist/src/lib/tui/components/ProjectList.js +0 -6
  94. package/dist/src/lib/tui/components/ProjectList.js.map +0 -1
  95. package/dist/src/lib/tui/components/Spinner.js +0 -20
  96. package/dist/src/lib/tui/components/Spinner.js.map +0 -1
  97. package/dist/src/lib/tui/components/StatusBanner.js +0 -12
  98. package/dist/src/lib/tui/components/StatusBanner.js.map +0 -1
  99. package/dist/src/lib/tui/components/StatusBar.js +0 -11
  100. package/dist/src/lib/tui/components/StatusBar.js.map +0 -1
  101. package/dist/src/lib/tui/components/UserBubble.js +0 -6
  102. package/dist/src/lib/tui/components/UserBubble.js.map +0 -1
  103. package/dist/src/lib/tui/components/index.js +0 -16
  104. package/dist/src/lib/tui/components/index.js.map +0 -1
  105. package/dist/src/lib/tui/ink-print.js +0 -41
  106. package/dist/src/lib/tui/ink-print.js.map +0 -1
  107. package/dist/src/test-agent-flow.js +0 -148
  108. package/dist/src/test-agent-flow.js.map +0 -1
  109. package/dist/src/test-browser-session.js +0 -152
  110. package/dist/src/test-browser-session.js.map +0 -1
  111. package/dist/src/test-browser-snapshot.js +0 -187
  112. package/dist/src/test-browser-snapshot.js.map +0 -1
  113. package/dist/src/test-snapshot-detailed.js +0 -219
  114. package/dist/src/test-snapshot-detailed.js.map +0 -1
  115. package/dist/src/test-snapshot-simple.js +0 -85
  116. package/dist/src/test-snapshot-simple.js.map +0 -1
  117. package/dist/src/test-snapshot-tabs.js +0 -110
  118. package/dist/src/test-snapshot-tabs.js.map +0 -1
@@ -1,152 +0,0 @@
1
- /**
2
- * Test script for browser session tool functionality
3
- * This script tests the browser_session tool implementation
4
- */
5
- import { ToolExecutor } from "./lib/tool-executor.js";
6
- import chalk from "chalk";
7
- import { execSync } from "child_process";
8
- async function testBrowserSession() {
9
- console.log(chalk.blue("🧪 Testing Browser Session Tool...\n"));
10
- const executor = new ToolExecutor({
11
- testingMode: "ui",
12
- });
13
- const testResults = {
14
- startSession: null,
15
- startSessionDuplicate: null,
16
- stopSession: null,
17
- stopSessionWithoutStart: null,
18
- };
19
- try {
20
- // Test 1: Start browser session
21
- console.log(chalk.yellow("Test 1: Starting browser session..."));
22
- testResults.startSession = (await executor.execute({
23
- name: "browser_session",
24
- arguments: {
25
- action: "start",
26
- viewport: { width: 1024, height: 768 },
27
- },
28
- }));
29
- console.log("Result:", JSON.stringify(testResults.startSession, null, 2));
30
- if (testResults.startSession?.success) {
31
- console.log(chalk.green("āœ… Browser session started successfully"));
32
- }
33
- else {
34
- console.log(chalk.red("āŒ Failed to start browser session:"), testResults.startSession?.error);
35
- }
36
- // Wait a moment for browser to fully initialize
37
- await new Promise((resolve) => setTimeout(resolve, 2000));
38
- // Test 2: Try to start another session (should fail)
39
- console.log(chalk.yellow("\nTest 2: Attempting to start duplicate session..."));
40
- testResults.startSessionDuplicate = (await executor.execute({
41
- name: "browser_session",
42
- arguments: {
43
- action: "start",
44
- },
45
- }));
46
- console.log("Result:", JSON.stringify(testResults.startSessionDuplicate, null, 2));
47
- if (!testResults.startSessionDuplicate?.success) {
48
- console.log(chalk.green("āœ… Correctly prevented duplicate session"));
49
- }
50
- else {
51
- console.log(chalk.red("āŒ Should have prevented duplicate session"));
52
- }
53
- // Test 3: Stop browser session
54
- console.log(chalk.yellow("\nTest 3: Stopping browser session..."));
55
- testResults.stopSession = (await executor.execute({
56
- name: "browser_session",
57
- arguments: {
58
- action: "stop",
59
- },
60
- }));
61
- console.log("Result:", JSON.stringify(testResults.stopSession, null, 2));
62
- if (testResults.stopSession?.success) {
63
- console.log(chalk.green("āœ… Browser session stopped successfully"));
64
- }
65
- else {
66
- console.log(chalk.red("āŒ Failed to stop browser session:"), testResults.stopSession?.error);
67
- }
68
- // Test 4: Try to stop session when none exists
69
- console.log(chalk.yellow("\nTest 4: Attempting to stop non-existent session..."));
70
- testResults.stopSessionWithoutStart = (await executor.execute({
71
- name: "browser_session",
72
- arguments: {
73
- action: "stop",
74
- },
75
- }));
76
- console.log("Result:", JSON.stringify(testResults.stopSessionWithoutStart, null, 2));
77
- if (!testResults.stopSessionWithoutStart?.success) {
78
- console.log(chalk.green("āœ… Correctly handled stopping non-existent session"));
79
- }
80
- else {
81
- console.log(chalk.red("āŒ Should have failed when stopping non-existent session"));
82
- }
83
- }
84
- catch (error) {
85
- console.error(chalk.red("āŒ Test failed with error:"), error);
86
- }
87
- // Summary
88
- console.log(chalk.blue("\nšŸ“Š Test Summary:"));
89
- console.log("================");
90
- const tests = [
91
- {
92
- name: "Start Session",
93
- result: testResults.startSession,
94
- expectSuccess: true,
95
- },
96
- {
97
- name: "Prevent Duplicate",
98
- result: testResults.startSessionDuplicate,
99
- expectSuccess: false,
100
- },
101
- {
102
- name: "Stop Session",
103
- result: testResults.stopSession,
104
- expectSuccess: true,
105
- },
106
- {
107
- name: "Stop Non-existent",
108
- result: testResults.stopSessionWithoutStart,
109
- expectSuccess: false,
110
- },
111
- ];
112
- tests.forEach((test) => {
113
- const isCorrectBehavior = test.expectSuccess
114
- ? test.result?.success
115
- : !test.result?.success;
116
- const status = isCorrectBehavior ? "āœ… PASS" : "āŒ FAIL";
117
- const color = isCorrectBehavior ? chalk.green : chalk.red;
118
- console.log(color(`${status} - ${test.name}`));
119
- if (!isCorrectBehavior && test.result?.error) {
120
- console.log(chalk.gray(` Error: ${test.result.error}`));
121
- }
122
- });
123
- // Check if Playwright is installed
124
- console.log(chalk.blue("\nšŸ” Environment Check:"));
125
- console.log("===================");
126
- try {
127
- const playwrightVersion = execSync("npx playwright --version", {
128
- encoding: "utf8",
129
- });
130
- console.log(chalk.green("āœ… Playwright installed:"), playwrightVersion.trim());
131
- }
132
- catch (error) {
133
- console.log(chalk.red("āŒ Playwright not found or not properly installed"));
134
- console.log(chalk.yellow(" Run: npx playwright install chromium"));
135
- }
136
- try {
137
- const chromiumCheck = execSync("npx playwright install --dry-run chromium", { encoding: "utf8" });
138
- if (chromiumCheck.includes("chromium")) {
139
- console.log(chalk.green("āœ… Chromium browser available"));
140
- }
141
- else {
142
- console.log(chalk.red("āŒ Chromium browser not installed"));
143
- console.log(chalk.yellow(" Run: npx playwright install chromium"));
144
- }
145
- }
146
- catch (error) {
147
- console.log(chalk.red("āŒ Error checking Chromium installation"));
148
- }
149
- }
150
- // Run the test
151
- testBrowserSession().catch(console.error);
152
- //# sourceMappingURL=test-browser-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-browser-session.js","sourceRoot":"","sources":["../../src/test-browser-session.ts"],"names":[],"mappings":"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"}
@@ -1,187 +0,0 @@
1
- /**
2
- * Test script specifically for browser snapshot functionality
3
- * Tests the browser_snapshot tool to identify any issues
4
- */
5
- import { ToolExecutor } from "./lib/tool-executor.js";
6
- import chalk from "chalk";
7
- async function testBrowserSnapshot() {
8
- console.log(chalk.blue("šŸ” Testing Browser Snapshot Functionality\n"));
9
- const executor = new ToolExecutor({
10
- testingMode: "ui",
11
- });
12
- const testResults = [];
13
- try {
14
- // Step 1: Start browser session
15
- console.log(chalk.yellow("Step 1: Starting browser session..."));
16
- const startResult = await executor.execute({
17
- name: "browser_session",
18
- arguments: {
19
- action: "start",
20
- viewport: { width: 1280, height: 800 },
21
- },
22
- });
23
- testResults.push({ step: "Start Browser", ...startResult });
24
- console.log("Result:", JSON.stringify(startResult, null, 2));
25
- if (!startResult.success) {
26
- console.log(chalk.red("āŒ Failed to start browser session:"), startResult.error);
27
- return;
28
- }
29
- console.log(chalk.green("āœ… Browser session started successfully"));
30
- // Wait for browser to initialize
31
- await new Promise((resolve) => setTimeout(resolve, 2000));
32
- // Step 2: Navigate to a simple page
33
- console.log(chalk.yellow("\nStep 2: Navigating to Google..."));
34
- const navigateResult = await executor.execute({
35
- name: "browser_navigate",
36
- arguments: {
37
- url: "https://www.google.com",
38
- },
39
- });
40
- testResults.push({ step: "Navigate to Google", ...navigateResult });
41
- console.log("Result:", JSON.stringify(navigateResult, null, 2));
42
- if (navigateResult.success) {
43
- console.log(chalk.green("āœ… Successfully navigated to Google"));
44
- }
45
- else {
46
- console.log(chalk.red("āŒ Failed to navigate to Google:"), navigateResult.error);
47
- }
48
- // Wait for page to load
49
- await new Promise((resolve) => setTimeout(resolve, 3000));
50
- // Step 3: Test browser snapshot
51
- console.log(chalk.yellow("\nStep 3: Testing browser snapshot..."));
52
- const snapshotResult = await executor.execute({
53
- name: "browser_snapshot",
54
- arguments: {},
55
- });
56
- testResults.push({ step: "Browser Snapshot", ...snapshotResult });
57
- console.log("Result:", JSON.stringify(snapshotResult, null, 2));
58
- if (snapshotResult.success) {
59
- console.log(chalk.green("āœ… Browser snapshot retrieved successfully"));
60
- // Analyze the snapshot content
61
- if (snapshotResult.sections) {
62
- console.log(chalk.blue("\nšŸ“‹ Snapshot Sections:"));
63
- for (const [key, value] of snapshotResult.sections) {
64
- console.log(chalk.cyan(` ${key}:`));
65
- console.log(chalk.gray(` ${value.substring(0, 200)}${value.length > 200 ? '...' : ''}`));
66
- }
67
- }
68
- if (snapshotResult.content) {
69
- console.log(chalk.blue("\nšŸ“„ Raw Content:"));
70
- snapshotResult.content.forEach((item, index) => {
71
- console.log(chalk.cyan(` Content ${index + 1}:`));
72
- console.log(chalk.gray(` Type: ${item.type}`));
73
- if (item.text) {
74
- console.log(chalk.gray(` Text: ${item.text.substring(0, 200)}${item.text.length > 200 ? '...' : ''}`));
75
- }
76
- });
77
- }
78
- // Check for specific snapshot data
79
- const pageState = snapshotResult.sections?.get("Page state");
80
- if (pageState) {
81
- console.log(chalk.green("āœ… Page state found in snapshot"));
82
- console.log(chalk.blue("šŸ“Š Page state preview:"));
83
- console.log(chalk.gray(pageState.substring(0, 500) + (pageState.length > 500 ? '...' : '')));
84
- }
85
- else {
86
- console.log(chalk.red("āŒ No Page state found in snapshot"));
87
- }
88
- }
89
- else {
90
- console.log(chalk.red("āŒ Failed to get browser snapshot:"), snapshotResult.error);
91
- }
92
- // Step 4: Test snapshot with different arguments
93
- console.log(chalk.yellow("\nStep 4: Testing snapshot with accessibility tree..."));
94
- const snapshotWithAccessibilityResult = await executor.execute({
95
- name: "browser_snapshot",
96
- arguments: {
97
- accessibilityTree: true,
98
- },
99
- });
100
- testResults.push({ step: "Snapshot with Accessibility", ...snapshotWithAccessibilityResult });
101
- console.log("Result:", JSON.stringify(snapshotWithAccessibilityResult, null, 2));
102
- if (snapshotWithAccessibilityResult.success) {
103
- console.log(chalk.green("āœ… Accessibility snapshot retrieved successfully"));
104
- }
105
- else {
106
- console.log(chalk.red("āŒ Failed to get accessibility snapshot:"), snapshotWithAccessibilityResult.error);
107
- }
108
- // Step 5: Test snapshot with specific element
109
- console.log(chalk.yellow("\nStep 5: Testing snapshot with element selector..."));
110
- const snapshotWithElementResult = await executor.execute({
111
- name: "browser_snapshot",
112
- arguments: {
113
- element: "body",
114
- },
115
- });
116
- testResults.push({ step: "Snapshot with Element", ...snapshotWithElementResult });
117
- console.log("Result:", JSON.stringify(snapshotWithElementResult, null, 2));
118
- if (snapshotWithElementResult.success) {
119
- console.log(chalk.green("āœ… Element snapshot retrieved successfully"));
120
- }
121
- else {
122
- console.log(chalk.red("āŒ Failed to get element snapshot:"), snapshotWithElementResult.error);
123
- }
124
- // Step 6: Stop browser session
125
- console.log(chalk.yellow("\nStep 6: Stopping browser session..."));
126
- const stopResult = await executor.execute({
127
- name: "browser_session",
128
- arguments: {
129
- action: "stop",
130
- },
131
- });
132
- testResults.push({ step: "Stop Browser", ...stopResult });
133
- console.log("Result:", JSON.stringify(stopResult, null, 2));
134
- if (stopResult.success) {
135
- console.log(chalk.green("āœ… Browser session stopped successfully"));
136
- }
137
- else {
138
- console.log(chalk.red("āŒ Failed to stop browser session:"), stopResult.error);
139
- }
140
- }
141
- catch (error) {
142
- console.error(chalk.red("āŒ Test failed with error:"), error);
143
- testResults.push({ step: "Error", success: false, error: String(error) });
144
- }
145
- // Summary
146
- console.log(chalk.blue("\nšŸ“Š Test Summary:"));
147
- console.log("==================");
148
- testResults.forEach((result, index) => {
149
- const status = result.success ? "āœ… PASS" : "āŒ FAIL";
150
- const color = result.success ? chalk.green : chalk.red;
151
- console.log(color(`${status} - Step ${index + 1}: ${result.step}`));
152
- if (!result.success && result.error) {
153
- console.log(chalk.gray(` Error: ${result.error}`));
154
- }
155
- });
156
- const successCount = testResults.filter(r => r.success).length;
157
- const totalCount = testResults.length;
158
- console.log(chalk.blue(`\nšŸŽÆ Overall: ${successCount}/${totalCount} steps completed successfully`));
159
- if (successCount === totalCount) {
160
- console.log(chalk.green("šŸŽ‰ All snapshot tests passed!"));
161
- }
162
- else {
163
- console.log(chalk.yellow("āš ļø Some snapshot tests failed. Check the errors above."));
164
- }
165
- // Detailed analysis
166
- console.log(chalk.blue("\nšŸ” Snapshot Analysis:"));
167
- console.log("===================");
168
- const snapshotTests = testResults.filter(r => r.step?.includes("Snapshot"));
169
- snapshotTests.forEach(test => {
170
- console.log(chalk.cyan(`\n${test.step}:`));
171
- if (test.success) {
172
- console.log(chalk.green(" āœ… Success"));
173
- if (test.sections) {
174
- console.log(chalk.blue(` šŸ“‹ Sections: ${Array.from(test.sections.keys()).join(', ')}`));
175
- }
176
- if (test.content) {
177
- console.log(chalk.blue(` šŸ“„ Content items: ${test.content.length}`));
178
- }
179
- }
180
- else {
181
- console.log(chalk.red(` āŒ Failed: ${test.error}`));
182
- }
183
- });
184
- }
185
- // Run the test
186
- testBrowserSnapshot().catch(console.error);
187
- //# sourceMappingURL=test-browser-snapshot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-browser-snapshot.js","sourceRoot":"","sources":["../../src/test-browser-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,219 +0,0 @@
1
- /**
2
- * Detailed test for browser snapshot functionality
3
- * Tests various aspects of the snapshot tool to identify issues
4
- */
5
- import { ToolExecutor } from "./lib/tool-executor.js";
6
- import chalk from "chalk";
7
- async function testSnapshotDetailed() {
8
- console.log(chalk.blue("šŸ” Detailed Browser Snapshot Test\n"));
9
- const executor = new ToolExecutor({
10
- testingMode: "ui",
11
- });
12
- try {
13
- // Step 1: Start browser session
14
- console.log(chalk.yellow("Step 1: Starting browser session..."));
15
- const startResult = await executor.execute({
16
- name: "browser_session",
17
- arguments: {
18
- action: "start",
19
- viewport: { width: 1280, height: 800 },
20
- },
21
- });
22
- if (!startResult.success) {
23
- console.log(chalk.red("āŒ Failed to start browser session:"), startResult.error);
24
- return;
25
- }
26
- console.log(chalk.green("āœ… Browser session started"));
27
- // Wait for browser to initialize
28
- await new Promise((resolve) => setTimeout(resolve, 2000));
29
- // Step 2: Navigate to a simple page
30
- console.log(chalk.yellow("\nStep 2: Navigating to example.com..."));
31
- const navigateResult = await executor.execute({
32
- name: "browser_navigate",
33
- arguments: {
34
- url: "https://example.com",
35
- },
36
- });
37
- if (!navigateResult.success) {
38
- console.log(chalk.red("āŒ Failed to navigate:"), navigateResult.error);
39
- return;
40
- }
41
- console.log(chalk.green("āœ… Successfully navigated to example.com"));
42
- // Wait for page to load
43
- await new Promise((resolve) => setTimeout(resolve, 3000));
44
- // Step 3: Test basic snapshot
45
- console.log(chalk.yellow("\nStep 3: Testing basic browser snapshot..."));
46
- const snapshotResult = await executor.execute({
47
- name: "browser_snapshot",
48
- arguments: {},
49
- });
50
- console.log(chalk.blue("šŸ“Š Snapshot Result Analysis:"));
51
- console.log("================================");
52
- console.log("Success:", snapshotResult.success);
53
- console.log("Error:", snapshotResult.error);
54
- console.log("Message:", snapshotResult.message);
55
- if (snapshotResult.content) {
56
- console.log("Content type:", typeof snapshotResult.content);
57
- console.log("Content length:", snapshotResult.content.length);
58
- console.log("First content item:", JSON.stringify(snapshotResult.content[0], null, 2));
59
- }
60
- if (snapshotResult.sections) {
61
- console.log("Sections type:", typeof snapshotResult.sections);
62
- console.log("Sections keys:", Object.keys(snapshotResult.sections));
63
- console.log("Sections content:", JSON.stringify(snapshotResult.sections, null, 2));
64
- }
65
- // Step 4: Test snapshot with different parameters
66
- console.log(chalk.yellow("\nStep 4: Testing snapshot with accessibility tree..."));
67
- const snapshotAccessibilityResult = await executor.execute({
68
- name: "browser_snapshot",
69
- arguments: {
70
- accessibilityTree: true,
71
- },
72
- });
73
- console.log(chalk.blue("šŸ“Š Accessibility Snapshot Result:"));
74
- console.log("=====================================");
75
- console.log("Success:", snapshotAccessibilityResult.success);
76
- console.log("Error:", snapshotAccessibilityResult.error);
77
- if (snapshotAccessibilityResult.content) {
78
- console.log("Content length:", snapshotAccessibilityResult.content.length);
79
- }
80
- // Step 5: Test snapshot with element selector
81
- console.log(chalk.yellow("\nStep 5: Testing snapshot with element selector..."));
82
- const snapshotElementResult = await executor.execute({
83
- name: "browser_snapshot",
84
- arguments: {
85
- element: "body",
86
- },
87
- });
88
- console.log(chalk.blue("šŸ“Š Element Snapshot Result:"));
89
- console.log("================================");
90
- console.log("Success:", snapshotElementResult.success);
91
- console.log("Error:", snapshotElementResult.error);
92
- // Step 6: Test snapshot with different modes
93
- console.log(chalk.yellow("\nStep 6: Testing snapshot with different modes..."));
94
- const snapshotModeResult = await executor.execute({
95
- name: "browser_snapshot",
96
- arguments: {
97
- mode: "full",
98
- },
99
- });
100
- console.log(chalk.blue("šŸ“Š Mode Snapshot Result:"));
101
- console.log("=============================");
102
- console.log("Success:", snapshotModeResult.success);
103
- console.log("Error:", snapshotModeResult.error);
104
- // Step 7: Test snapshot with waitFor
105
- console.log(chalk.yellow("\nStep 7: Testing snapshot with waitFor..."));
106
- const snapshotWaitResult = await executor.execute({
107
- name: "browser_snapshot",
108
- arguments: {
109
- waitFor: "load",
110
- },
111
- });
112
- console.log(chalk.blue("šŸ“Š Wait Snapshot Result:"));
113
- console.log("=============================");
114
- console.log("Success:", snapshotWaitResult.success);
115
- console.log("Error:", snapshotWaitResult.error);
116
- // Step 8: Test snapshot with timeout
117
- console.log(chalk.yellow("\nStep 8: Testing snapshot with timeout..."));
118
- const snapshotTimeoutResult = await executor.execute({
119
- name: "browser_snapshot",
120
- arguments: {
121
- timeout: 5000,
122
- },
123
- });
124
- console.log(chalk.blue("šŸ“Š Timeout Snapshot Result:"));
125
- console.log("================================");
126
- console.log("Success:", snapshotTimeoutResult.success);
127
- console.log("Error:", snapshotTimeoutResult.error);
128
- // Step 9: Test snapshot with all parameters
129
- console.log(chalk.yellow("\nStep 9: Testing snapshot with all parameters..."));
130
- const snapshotAllResult = await executor.execute({
131
- name: "browser_snapshot",
132
- arguments: {
133
- accessibilityTree: true,
134
- element: "body",
135
- mode: "full",
136
- waitFor: "load",
137
- timeout: 10000,
138
- },
139
- });
140
- console.log(chalk.blue("šŸ“Š All Parameters Snapshot Result:"));
141
- console.log("=========================================");
142
- console.log("Success:", snapshotAllResult.success);
143
- console.log("Error:", snapshotAllResult.error);
144
- // Step 10: Stop browser session
145
- console.log(chalk.yellow("\nStep 10: Stopping browser session..."));
146
- const stopResult = await executor.execute({
147
- name: "browser_session",
148
- arguments: {
149
- action: "stop",
150
- },
151
- });
152
- if (stopResult.success) {
153
- console.log(chalk.green("āœ… Browser session stopped successfully"));
154
- }
155
- else {
156
- console.log(chalk.red("āŒ Failed to stop browser session:"), stopResult.error);
157
- }
158
- // Summary
159
- console.log(chalk.blue("\nšŸ“Š Test Summary:"));
160
- console.log("==================");
161
- const tests = [
162
- { name: "Basic Snapshot", result: snapshotResult },
163
- { name: "Accessibility Snapshot", result: snapshotAccessibilityResult },
164
- { name: "Element Snapshot", result: snapshotElementResult },
165
- { name: "Mode Snapshot", result: snapshotModeResult },
166
- { name: "Wait Snapshot", result: snapshotWaitResult },
167
- { name: "Timeout Snapshot", result: snapshotTimeoutResult },
168
- { name: "All Parameters Snapshot", result: snapshotAllResult },
169
- ];
170
- tests.forEach(test => {
171
- const status = test.result.success ? "āœ… PASS" : "āŒ FAIL";
172
- const color = test.result.success ? chalk.green : chalk.red;
173
- console.log(color(`${status} - ${test.name}`));
174
- if (!test.result.success && test.result.error) {
175
- console.log(chalk.gray(` Error: ${test.result.error}`));
176
- }
177
- });
178
- const successCount = tests.filter(t => t.result.success).length;
179
- console.log(chalk.blue(`\nšŸŽÆ Overall: ${successCount}/${tests.length} snapshot tests passed`));
180
- // Detailed analysis of the first snapshot
181
- if (snapshotResult.success) {
182
- console.log(chalk.blue("\nšŸ” Detailed Analysis of Basic Snapshot:"));
183
- console.log("=============================================");
184
- if (snapshotResult.content && snapshotResult.content.length > 0) {
185
- const firstContent = snapshotResult.content[0];
186
- console.log("Content type:", firstContent.type);
187
- if (firstContent.text) {
188
- console.log("Text length:", firstContent.text.length);
189
- console.log("Text preview:", firstContent.text.substring(0, 200) + "...");
190
- // Check if it contains expected snapshot data
191
- if (firstContent.text.includes("Page state")) {
192
- console.log(chalk.green("āœ… Contains 'Page state' section"));
193
- }
194
- else {
195
- console.log(chalk.red("āŒ Missing 'Page state' section"));
196
- }
197
- if (firstContent.text.includes("Page Snapshot")) {
198
- console.log(chalk.green("āœ… Contains 'Page Snapshot' section"));
199
- }
200
- else {
201
- console.log(chalk.red("āŒ Missing 'Page Snapshot' section"));
202
- }
203
- if (firstContent.text.includes("ref=")) {
204
- console.log(chalk.green("āœ… Contains element references"));
205
- }
206
- else {
207
- console.log(chalk.red("āŒ Missing element references"));
208
- }
209
- }
210
- }
211
- }
212
- }
213
- catch (error) {
214
- console.error(chalk.red("āŒ Test failed with error:"), error);
215
- }
216
- }
217
- // Run the test
218
- testSnapshotDetailed().catch(console.error);
219
- //# sourceMappingURL=test-snapshot-detailed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-snapshot-detailed.js","sourceRoot":"","sources":["../../src/test-snapshot-detailed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,KAAK,UAAU,oBAAoB;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC;QAChC,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACzC,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC;aACrC;SACF,CAAe,CAAC;QAEjB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAEtD,iCAAiC;QACjC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1D,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YAC5C,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,GAAG,EAAE,qBAAqB;aAC3B;SACF,CAAe,CAAC;QAEjB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAEpE,wBAAwB;QACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1D,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YAC5C,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,EAAE;SACd,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,MAAM,2BAA2B,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACzD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,iBAAiB,EAAE,IAAI;aACxB;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,2BAA2B,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,CAAC;QAED,8CAA8C;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACjF,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACnD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,OAAO,EAAE,MAAM;aAChB;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEnD,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,IAAI,EAAE,MAAM;aACb;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,OAAO,EAAE,MAAM;aAChB;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACnD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;aACd;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEnD,4CAA4C;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YAC/C,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACT,iBAAiB,EAAE,IAAI;gBACvB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK;aACf;SACF,CAAe,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE/C,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACxC,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE;gBACT,MAAM,EAAE,MAAM;aACf;SACF,CAAe,CAAC;QAEjB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAElC,MAAM,KAAK,GAAG;YACZ,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE;YAClD,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,2BAA2B,EAAE;YACvE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE;YAC3D,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,iBAAiB,EAAE;SAC/D,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,YAAY,IAAI,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAC;QAE/F,0CAA0C;QAC1C,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAE7D,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;oBAE1E,8CAA8C;oBAC9C,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBAC3D,CAAC;oBAED,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;oBAC9D,CAAC;oBAED,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,eAAe;AACf,oBAAoB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}