@@ -0,0 +1,157 @@
1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """Diagram analysis using vision model classification and single-pass extraction."""
2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ import """
4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ import pathlib import Path
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from typing import List, Optional, Tuple, Union
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from tqdm import tqdm
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from videvideo_processor.models import DiagramResult, DiagramType, ScreenCapture
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from video_processor.providers.manager import ProviderManager
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ logger = logging.getLogger(__name__)
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # DEFAULT_MAX_WORKERS = 4
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Classification prompt — returns JSON
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _CLASSIFY_PROMPT = """\
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Examine this imaClassify whether it contains a diagram, \
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ chart, slide, whiteboard content, architecture drawingchitecture drm syntax representing this visual (graph LR, sequenceDiagram, etc.)",
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "chart_data": null or {"labels": [...], "values": [...], "chart_ screenshot from a video recording. Extract all visible knowledgedfidence = float(classny field cannot be determined, use null or empty list.
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Caption prompt for screengrab fallback
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _CAPTION_PROMPT = "Briefly describe what this image shows in 1-2 sentences."
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Ri h screenshot extraction prompt
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ except Exce screenshot from a video recording. Extract all visible knowledge.
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ This is sharer, Path]) -> dict:
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Classify a single frame using vision model.
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Returns dict with is_diagram, diagram_type, confidence, brief_description.
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ image_bytes = _read_image_bytes(image_path)
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ raw = self.pm.analyze_image(image_bytes, _CLASSIFY_PROMPT, max_tokens=512)
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ result = _parse_json_response(raw)
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if result is None:
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return {
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "is_diagram": False,
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "diagram_type": "unknown",
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "confidence": 0.0,
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "brief_description": "",
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return result
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def analyze_diagram_single_pass(self, image_path: Union[str, Path]) -> dict:
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Full single-pass diagram analysis — description, text, mermaid, chart data.
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Returns parsed dict or empty dict on failure.
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ image_bytes = _read_image_bytes(image_path)
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ raw = self.pm.analyze_image(image_bytes, _ANALYSIS_PROMPT, max_tokens=4096)
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ result = _parse_json_response(raw)
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return result or {}
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def caption_frame(self, image_path: Union[str, Path]) -> str:
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """Get a brief caption for a screengrab fallback."""
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ image_bytes = _read_image_bytes(image_path)
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return self.pm.analyze_image(image_bytes, _CAPTION_PROMPT, for la.
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If any field caic data.
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If any field cannot be cleaned = "\n".join(lines)
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Caption prompt for screengrab fallback
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _CAPTION_PROMPT = "Briefly describe what this image shows in 1-2 sentences."
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Rich screenshot extraction prompt — extracts knowledge from shared screens
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _SCREENSHOT_EXTRACT_PROMPT = """\
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Analyze this screenshot from a video recording. Extract all visible knowledge.
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ This is sharer, Path]) -> dict:
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Classify a single frame using vision model.
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Returns dict with is_diagram, diagram_type, confidence, brief_description.
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ image_bytes = _read_image_bytes(image_path)
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ raw = self.pm.analyze_image(image_bytes, _CLASSIFY_PROMPT, max_tokens=512)
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ result = _parse_json_response(raw)
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if result is None:
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return {
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "is_diagram": False,
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "diagram_type": "unknown",
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "confidence": 0.0,
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "brief_description": "",
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return result
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def analyze_diagram_single_pass(self, image_path: Union[str, Path]) -> dict:
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Full single-pass diagram analysis — description, text, mermaid, chart data.
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Returns parsed dict or empty dict on failure.
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "is_diagram": False, except Exception as "confidence": 0.0,able numeric data.
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ If a"}
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t Exceptinue
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ s.get(idx, {})
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confidence = float(classification.get("confidenconfidence <ct[int, dict] = {logger.debug(f"Frame {i}: esults (sequential for stab below threshold, skipping" total=len(fontinue
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if confidence >= 0.7:
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Full diagram analysisrs) as pool:
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n_results[idx] = result
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ f"Frame {i}: diagram detected results (sequential for stable analyzing..." cache_hits += 1
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if cCapture:
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fication in high_coce": 0.0}
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tion data."""")
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content_typ
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ urn idx, re}: {e}, falling # Analysis failed "
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ total=len( analysis = {}
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rs) as pool:
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dence", 0.0))
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if not # Analysis failed
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ capture = diagram_idx = 0
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ capture_idx = 0
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for idx, fp, classification in high_conf:
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ analysis = analysis_results.get(idx, {})
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confidence = float(classification.get("confidence", 0.0))
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if not analysis:
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Analysis failed — fall back to screengrab with pre-fetched extraction
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = extraction_results.get(idx)
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if extraction is None:
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Wasn't in med_conf, need to extract now
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ try:
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = self.extract_screenshot_knowledge(fp)
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ except Exception:
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = {}
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ capture = self._build_screengrab(
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ relationships= capture_idx += 1
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ,) tion data."""")frame_paths urn idx, tryn."""
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ import """
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ import pathlib import Path
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from typing import List, Optional, Tuple, Union
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ """Diagram analysis using vision model classification and single-pass ext) analysis = analysis_results.get(idx, {})
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confidence = float(classification.get("confidence", 0.0))
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if not analysis:
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Analysis failed — fall back to screengrab with pre-fetched extraction
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = extraction_results.get(idx)
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if extraction is None:
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Wasn't in med_conf, need to extract now
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ try:
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = self.extract_screenshot_knowledge(fp)
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ except Exception:
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ extraction = {}
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ capture = self._build_screengrab(
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ relationships= capture_idx += 1
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ,)