cursorflow 1.3.2__tar.gz → 1.3.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-1.3.2 → cursorflow-1.3.4}/MANIFEST.in +2 -3
- {cursorflow-1.3.2 → cursorflow-1.3.4}/PKG-INFO +1 -1
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/browser_controller.py +1 -1
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/event_correlator.py +20 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/install_cursorflow_rules.py +2 -2
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/log_sources/local_file.py +1 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/log_sources/ssh_remote.py +2 -0
- cursorflow-1.3.4/cursorflow/rules/__init__.py +18 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow.egg-info/SOURCES.txt +4 -3
- {cursorflow-1.3.2 → cursorflow-1.3.4}/pyproject.toml +1 -1
- {cursorflow-1.3.2 → cursorflow-1.3.4}/LICENSE +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/README.md +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/__init__.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/auto_updater.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/cli.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/agent.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/auth_handler.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/browser_engine.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/css_iterator.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/cursor_integration.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/cursorflow.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/error_correlator.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/file_change_monitor.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/log_collector.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/log_monitor.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/mockup_comparator.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/persistent_session.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/core/report_generator.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4/cursorflow}/rules/cursorflow-installation.mdc +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4/cursorflow}/rules/cursorflow-usage.mdc +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/cursorflow/updater.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/docs/USER_MANUAL.md +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/examples/comprehensive_screenshot_example.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/examples/mockup_comparison_example.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/examples/opensas_example.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/examples/react_example.py +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/setup.cfg +0 -0
- {cursorflow-1.3.2 → cursorflow-1.3.4}/setup.py +0 -0
@@ -40,9 +40,8 @@ exclude __pycache__/*
|
|
40
40
|
recursive-exclude * __pycache__
|
41
41
|
recursive-exclude * *.py[co]
|
42
42
|
|
43
|
-
#
|
44
|
-
include rules
|
45
|
-
include rules/cursorflow-usage.mdc
|
43
|
+
# Include Cursor rules files explicitly
|
44
|
+
include cursorflow/rules/*.mdc
|
46
45
|
|
47
46
|
# Rules installation script is now in cursorflow/ package
|
48
47
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cursorflow
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.4
|
4
4
|
Summary: Complete page intelligence for AI-driven development - captures DOM, network, console, and performance data
|
5
5
|
Author-email: GeekWarrior Development <support@cursorflow.dev>
|
6
6
|
License-Expression: MIT
|
@@ -198,7 +198,7 @@ class BrowserController:
|
|
198
198
|
"status": response.status,
|
199
199
|
"status_text": response.status_text,
|
200
200
|
"headers": dict(response.headers),
|
201
|
-
"size":
|
201
|
+
"size": 0, # Will be populated by _capture_response_body if needed
|
202
202
|
"from_cache": response.from_service_worker or False
|
203
203
|
}
|
204
204
|
self.network_requests.append(response_data)
|
@@ -167,6 +167,26 @@ class EventCorrelator:
|
|
167
167
|
"time_range": time_range
|
168
168
|
}
|
169
169
|
|
170
|
+
def organize_timeline(self, browser_events: List[Dict], server_logs: List[Dict]) -> List[Dict]:
|
171
|
+
"""
|
172
|
+
Organize browser events and server logs into chronological timeline
|
173
|
+
|
174
|
+
This is the method called by CursorFlow.execute_and_collect()
|
175
|
+
"""
|
176
|
+
return self._create_chronological_timeline(browser_events, server_logs)
|
177
|
+
|
178
|
+
def get_summary(self, timeline: List[Dict]) -> Dict[str, Any]:
|
179
|
+
"""
|
180
|
+
Get basic summary from organized timeline
|
181
|
+
|
182
|
+
This is the method called by CursorFlow.execute_and_collect()
|
183
|
+
"""
|
184
|
+
# Extract browser events and server logs from timeline
|
185
|
+
browser_events = [event["raw_event"] for event in timeline if event.get("source") == "browser" and "raw_event" in event]
|
186
|
+
server_logs = [event["raw_log"] for event in timeline if event.get("source") == "server" and "raw_log" in event]
|
187
|
+
|
188
|
+
return self._create_basic_summary(browser_events, server_logs)
|
189
|
+
|
170
190
|
def organize_for_time_window(self, timeline: List[Dict], start_time: float, end_time: float) -> List[Dict]:
|
171
191
|
"""Get events within specific time window - simple filtering"""
|
172
192
|
return [
|
@@ -32,12 +32,12 @@ def install_cursorflow_rules(project_dir: str = "."):
|
|
32
32
|
# Find CursorFlow package location
|
33
33
|
try:
|
34
34
|
import cursorflow
|
35
|
-
package_dir = Path(cursorflow.__file__).parent
|
35
|
+
package_dir = Path(cursorflow.__file__).parent
|
36
36
|
rules_source_dir = package_dir / "rules"
|
37
37
|
except ImportError:
|
38
38
|
# Fallback: look for rules in current directory structure
|
39
39
|
current_dir = Path(__file__).parent
|
40
|
-
rules_source_dir = current_dir
|
40
|
+
rules_source_dir = current_dir / "rules" # Now rules are in cursorflow/rules/
|
41
41
|
|
42
42
|
if not rules_source_dir.exists():
|
43
43
|
print(f"❌ Could not find CursorFlow rules directory at: {rules_source_dir}")
|
@@ -39,8 +39,10 @@ class SSHRemoteLogSource:
|
|
39
39
|
self.ssh_config = ssh_config
|
40
40
|
self.log_paths = log_paths
|
41
41
|
self.log_queue = queue.Queue()
|
42
|
+
self.ssh_client = None
|
42
43
|
self.monitoring_threads = []
|
43
44
|
self.monitoring = False
|
45
|
+
self.connect = True # Attribute expected by other components
|
44
46
|
|
45
47
|
self.logger = logging.getLogger(__name__)
|
46
48
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"""
|
2
|
+
CursorFlow Rules for Cursor AI Integration
|
3
|
+
|
4
|
+
This package contains the Cursor rules files that provide guidance
|
5
|
+
to Cursor AI on how to use CursorFlow effectively.
|
6
|
+
"""
|
7
|
+
|
8
|
+
import os
|
9
|
+
from pathlib import Path
|
10
|
+
|
11
|
+
def get_rules_directory():
|
12
|
+
"""Get the path to the rules directory"""
|
13
|
+
return Path(__file__).parent
|
14
|
+
|
15
|
+
def get_rule_files():
|
16
|
+
"""Get list of available rule files"""
|
17
|
+
rules_dir = get_rules_directory()
|
18
|
+
return list(rules_dir.glob("*.mdc"))
|
@@ -25,10 +25,11 @@ cursorflow/core/persistent_session.py
|
|
25
25
|
cursorflow/core/report_generator.py
|
26
26
|
cursorflow/log_sources/local_file.py
|
27
27
|
cursorflow/log_sources/ssh_remote.py
|
28
|
+
cursorflow/rules/__init__.py
|
29
|
+
cursorflow/rules/cursorflow-installation.mdc
|
30
|
+
cursorflow/rules/cursorflow-usage.mdc
|
28
31
|
docs/USER_MANUAL.md
|
29
32
|
examples/comprehensive_screenshot_example.py
|
30
33
|
examples/mockup_comparison_example.py
|
31
34
|
examples/opensas_example.py
|
32
|
-
examples/react_example.py
|
33
|
-
rules/cursorflow-installation.mdc
|
34
|
-
rules/cursorflow-usage.mdc
|
35
|
+
examples/react_example.py
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "cursorflow"
|
7
|
-
version = "1.3.
|
7
|
+
version = "1.3.4"
|
8
8
|
description = "Complete page intelligence for AI-driven development - captures DOM, network, console, and performance data"
|
9
9
|
authors = [
|
10
10
|
{name = "GeekWarrior Development", email = "support@cursorflow.dev"}
|
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
|