cursorflow 2.0.3__tar.gz → 2.0.4__tar.gz
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.
- {cursorflow-2.0.3 → cursorflow-2.0.4}/PKG-INFO +1 -1
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/__init__.py +1 -1
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/cli.py +7 -2
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/install_cursorflow_rules.py +4 -4
- {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/comprehensive_screenshot_example.py +7 -2
- {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/mockup_comparison_example.py +21 -6
- {cursorflow-2.0.3 → cursorflow-2.0.4}/pyproject.toml +1 -1
- {cursorflow-2.0.3 → cursorflow-2.0.4}/LICENSE +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/MANIFEST.in +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/README.md +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/auto_updater.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/agent.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/auth_handler.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/browser_controller.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/browser_engine.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/css_iterator.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/cursor_integration.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/cursorflow.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/error_context_collector.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/error_correlator.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/event_correlator.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/file_change_monitor.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/hmr_detector.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/log_collector.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/log_monitor.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/mockup_comparator.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/persistent_session.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/report_generator.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/trace_manager.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/log_sources/local_file.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/log_sources/ssh_remote.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/__init__.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/cursorflow-installation.mdc +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/cursorflow-usage.mdc +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/updater.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow.egg-info/SOURCES.txt +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/docs/USER_MANUAL.md +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/opensas_example.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/react_example.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/v2_comprehensive_demo.py +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/setup.cfg +0 -0
- {cursorflow-2.0.3 → cursorflow-2.0.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cursorflow
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.4
|
4
4
|
Summary: 🔥 Complete page intelligence for AI-driven development with Hot Reload Intelligence - captures DOM, network, console, performance, HMR events, and comprehensive page analysis
|
5
5
|
Author-email: GeekWarrior Development <rbush@cooltheory.com>
|
6
6
|
License-Expression: MIT
|
@@ -128,10 +128,15 @@ def test(base_url, path, actions, output, logs, config, verbose, headless, timeo
|
|
128
128
|
|
129
129
|
# Save results to file for Cursor analysis
|
130
130
|
if not output:
|
131
|
-
# Auto-generate meaningful filename
|
131
|
+
# Auto-generate meaningful filename in .cursorflow/artifacts/
|
132
132
|
session_id = results.get('session_id', 'unknown')
|
133
133
|
path_part = path.replace('/', '_') if path else 'root'
|
134
|
-
|
134
|
+
|
135
|
+
# Ensure .cursorflow/artifacts directory exists
|
136
|
+
artifacts_dir = Path('.cursorflow/artifacts')
|
137
|
+
artifacts_dir.mkdir(parents=True, exist_ok=True)
|
138
|
+
|
139
|
+
output = artifacts_dir / f"cursorflow_{path_part}_{session_id}.json"
|
135
140
|
|
136
141
|
with open(output, 'w') as f:
|
137
142
|
json.dump(results, f, indent=2, default=str)
|
@@ -125,9 +125,9 @@ def create_config_template(project_path: Path, force: bool = False):
|
|
125
125
|
# Get current version
|
126
126
|
try:
|
127
127
|
import cursorflow
|
128
|
-
current_version = getattr(cursorflow, '__version__', '2.0.
|
128
|
+
current_version = getattr(cursorflow, '__version__', '2.0.4')
|
129
129
|
except ImportError:
|
130
|
-
current_version = '2.0.
|
130
|
+
current_version = '2.0.4'
|
131
131
|
|
132
132
|
if config_path.exists():
|
133
133
|
if not force:
|
@@ -302,9 +302,9 @@ def setup_update_checking(project_path: Path):
|
|
302
302
|
# Create initial version tracking
|
303
303
|
try:
|
304
304
|
import cursorflow
|
305
|
-
current_version = getattr(cursorflow, '__version__', '2.0.
|
305
|
+
current_version = getattr(cursorflow, '__version__', '2.0.4')
|
306
306
|
except ImportError:
|
307
|
-
current_version = '2.0.
|
307
|
+
current_version = '2.0.4'
|
308
308
|
|
309
309
|
version_info = {
|
310
310
|
"installed_version": current_version,
|
@@ -103,10 +103,15 @@ async def demonstrate_comprehensive_screenshot():
|
|
103
103
|
print(f" Recent Errors: {console_summary.get('has_recent_errors', False)}")
|
104
104
|
|
105
105
|
# Save detailed analysis for inspection
|
106
|
-
|
106
|
+
from pathlib import Path
|
107
|
+
artifacts_dir = Path('.cursorflow/artifacts')
|
108
|
+
artifacts_dir.mkdir(parents=True, exist_ok=True)
|
109
|
+
|
110
|
+
analysis_file = artifacts_dir / 'comprehensive_screenshot_analysis.json'
|
111
|
+
with open(analysis_file, 'w') as f:
|
107
112
|
json.dump(results, f, indent=2, default=str)
|
108
113
|
|
109
|
-
print(f"\n💾 Complete analysis saved to:
|
114
|
+
print(f"\n💾 Complete analysis saved to: {analysis_file}")
|
110
115
|
print(f"📁 All artifacts available in: .cursorflow/artifacts/")
|
111
116
|
|
112
117
|
return results
|
@@ -71,10 +71,15 @@ async def basic_mockup_comparison():
|
|
71
71
|
print(f" {i+1}. {rec.get('description', 'No description')}")
|
72
72
|
|
73
73
|
# Save results for analysis
|
74
|
-
|
74
|
+
from pathlib import Path
|
75
|
+
artifacts_dir = Path('.cursorflow/artifacts')
|
76
|
+
artifacts_dir.mkdir(parents=True, exist_ok=True)
|
77
|
+
|
78
|
+
results_file = artifacts_dir / 'basic_mockup_comparison_results.json'
|
79
|
+
with open(results_file, 'w') as f:
|
75
80
|
json.dump(results, f, indent=2, default=str)
|
76
81
|
|
77
|
-
print(f"\n💾 Full results saved to:
|
82
|
+
print(f"\n💾 Full results saved to: {results_file}")
|
78
83
|
print(f"📁 Visual diffs available in: .cursorflow/artifacts/")
|
79
84
|
|
80
85
|
return results
|
@@ -187,10 +192,15 @@ async def iterative_mockup_matching():
|
|
187
192
|
print()
|
188
193
|
|
189
194
|
# Save results for analysis
|
190
|
-
|
195
|
+
from pathlib import Path
|
196
|
+
artifacts_dir = Path('.cursorflow/artifacts')
|
197
|
+
artifacts_dir.mkdir(parents=True, exist_ok=True)
|
198
|
+
|
199
|
+
results_file = artifacts_dir / 'iterative_mockup_matching_results.json'
|
200
|
+
with open(results_file, 'w') as f:
|
191
201
|
json.dump(results, f, indent=2, default=str)
|
192
202
|
|
193
|
-
print(f"💾 Full results saved to:
|
203
|
+
print(f"💾 Full results saved to: {results_file}")
|
194
204
|
print(f"📁 Iteration progress available in: .cursorflow/artifacts/")
|
195
205
|
|
196
206
|
return results
|
@@ -253,10 +263,15 @@ async def responsive_mockup_comparison():
|
|
253
263
|
f"({worst_viewport.get('visual_diff', {}).get('similarity_score', 0)}%)")
|
254
264
|
|
255
265
|
# Save results
|
256
|
-
|
266
|
+
from pathlib import Path
|
267
|
+
artifacts_dir = Path('.cursorflow/artifacts')
|
268
|
+
artifacts_dir.mkdir(parents=True, exist_ok=True)
|
269
|
+
|
270
|
+
results_file = artifacts_dir / 'responsive_mockup_comparison_results.json'
|
271
|
+
with open(results_file, 'w') as f:
|
257
272
|
json.dump(results, f, indent=2, default=str)
|
258
273
|
|
259
|
-
print(f"\n💾 Full results saved to:
|
274
|
+
print(f"\n💾 Full results saved to: {results_file}")
|
260
275
|
|
261
276
|
return results
|
262
277
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "cursorflow"
|
7
|
-
version = "2.0.
|
7
|
+
version = "2.0.4"
|
8
8
|
description = "🔥 Complete page intelligence for AI-driven development with Hot Reload Intelligence - captures DOM, network, console, performance, HMR events, and comprehensive page analysis"
|
9
9
|
authors = [
|
10
10
|
{name = "GeekWarrior Development", email = "rbush@cooltheory.com"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|