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.
Files changed (42) hide show
  1. {cursorflow-2.0.3 → cursorflow-2.0.4}/PKG-INFO +1 -1
  2. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/__init__.py +1 -1
  3. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/cli.py +7 -2
  4. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/install_cursorflow_rules.py +4 -4
  5. {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/comprehensive_screenshot_example.py +7 -2
  6. {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/mockup_comparison_example.py +21 -6
  7. {cursorflow-2.0.3 → cursorflow-2.0.4}/pyproject.toml +1 -1
  8. {cursorflow-2.0.3 → cursorflow-2.0.4}/LICENSE +0 -0
  9. {cursorflow-2.0.3 → cursorflow-2.0.4}/MANIFEST.in +0 -0
  10. {cursorflow-2.0.3 → cursorflow-2.0.4}/README.md +0 -0
  11. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/auto_updater.py +0 -0
  12. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/agent.py +0 -0
  13. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/auth_handler.py +0 -0
  14. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/browser_controller.py +0 -0
  15. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/browser_engine.py +0 -0
  16. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/css_iterator.py +0 -0
  17. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/cursor_integration.py +0 -0
  18. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/cursorflow.py +0 -0
  19. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/error_context_collector.py +0 -0
  20. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/error_correlator.py +0 -0
  21. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/event_correlator.py +0 -0
  22. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/file_change_monitor.py +0 -0
  23. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/hmr_detector.py +0 -0
  24. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/log_collector.py +0 -0
  25. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/log_monitor.py +0 -0
  26. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/mockup_comparator.py +0 -0
  27. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/persistent_session.py +0 -0
  28. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/report_generator.py +0 -0
  29. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/core/trace_manager.py +0 -0
  30. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/log_sources/local_file.py +0 -0
  31. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/log_sources/ssh_remote.py +0 -0
  32. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/__init__.py +0 -0
  33. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/cursorflow-installation.mdc +0 -0
  34. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/rules/cursorflow-usage.mdc +0 -0
  35. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow/updater.py +0 -0
  36. {cursorflow-2.0.3 → cursorflow-2.0.4}/cursorflow.egg-info/SOURCES.txt +0 -0
  37. {cursorflow-2.0.3 → cursorflow-2.0.4}/docs/USER_MANUAL.md +0 -0
  38. {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/opensas_example.py +0 -0
  39. {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/react_example.py +0 -0
  40. {cursorflow-2.0.3 → cursorflow-2.0.4}/examples/v2_comprehensive_demo.py +0 -0
  41. {cursorflow-2.0.3 → cursorflow-2.0.4}/setup.cfg +0 -0
  42. {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
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
@@ -49,7 +49,7 @@ def _get_version():
49
49
  pass
50
50
 
51
51
  # Fallback version - should match pyproject.toml
52
- return "2.0.3"
52
+ return "2.0.4"
53
53
 
54
54
  __version__ = _get_version()
55
55
  __author__ = "GeekWarrior Development"
@@ -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
- output = f"cursorflow_{path_part}_{session_id}.json"
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.3')
128
+ current_version = getattr(cursorflow, '__version__', '2.0.4')
129
129
  except ImportError:
130
- current_version = '2.0.3'
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.3')
305
+ current_version = getattr(cursorflow, '__version__', '2.0.4')
306
306
  except ImportError:
307
- current_version = '2.0.3'
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
- with open('comprehensive_screenshot_analysis.json', 'w') as f:
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: comprehensive_screenshot_analysis.json")
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
- with open('basic_mockup_comparison_results.json', 'w') as f:
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: basic_mockup_comparison_results.json")
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
- with open('iterative_mockup_matching_results.json', 'w') as f:
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: iterative_mockup_matching_results.json")
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
- with open('responsive_mockup_comparison_results.json', 'w') as f:
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: responsive_mockup_comparison_results.json")
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.3"
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