vbagent 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl

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 (78) hide show
  1. vbagent/cli/batch.py +76 -18
  2. vbagent-0.1.1.dist-info/METADATA +383 -0
  3. vbagent-0.1.1.dist-info/RECORD +77 -0
  4. vbagent/agents/__pycache__/__init__.cpython-312.pyc +0 -0
  5. vbagent/agents/__pycache__/alternate.cpython-312.pyc +0 -0
  6. vbagent/agents/__pycache__/base.cpython-312.pyc +0 -0
  7. vbagent/agents/__pycache__/clarity_checker.cpython-312.pyc +0 -0
  8. vbagent/agents/__pycache__/classifier.cpython-312.pyc +0 -0
  9. vbagent/agents/__pycache__/converter.cpython-312.pyc +0 -0
  10. vbagent/agents/__pycache__/grammar_checker.cpython-312.pyc +0 -0
  11. vbagent/agents/__pycache__/idea.cpython-312.pyc +0 -0
  12. vbagent/agents/__pycache__/multi_variant.cpython-312.pyc +0 -0
  13. vbagent/agents/__pycache__/reviewer.cpython-312.pyc +0 -0
  14. vbagent/agents/__pycache__/scanner.cpython-312.pyc +0 -0
  15. vbagent/agents/__pycache__/selector.cpython-312.pyc +0 -0
  16. vbagent/agents/__pycache__/solution_checker.cpython-312.pyc +0 -0
  17. vbagent/agents/__pycache__/tikz.cpython-312.pyc +0 -0
  18. vbagent/agents/__pycache__/tikz_checker.cpython-312.pyc +0 -0
  19. vbagent/agents/__pycache__/variant.cpython-312.pyc +0 -0
  20. vbagent/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  21. vbagent/cli/__pycache__/alternate.cpython-312.pyc +0 -0
  22. vbagent/cli/__pycache__/batch.cpython-312.pyc +0 -0
  23. vbagent/cli/__pycache__/check.cpython-312.pyc +0 -0
  24. vbagent/cli/__pycache__/classify.cpython-312.pyc +0 -0
  25. vbagent/cli/__pycache__/common.cpython-312.pyc +0 -0
  26. vbagent/cli/__pycache__/config.cpython-312.pyc +0 -0
  27. vbagent/cli/__pycache__/convert.cpython-312.pyc +0 -0
  28. vbagent/cli/__pycache__/idea.cpython-312.pyc +0 -0
  29. vbagent/cli/__pycache__/main.cpython-312.pyc +0 -0
  30. vbagent/cli/__pycache__/process.cpython-312.pyc +0 -0
  31. vbagent/cli/__pycache__/ref.cpython-312.pyc +0 -0
  32. vbagent/cli/__pycache__/scan.cpython-312.pyc +0 -0
  33. vbagent/cli/__pycache__/tikz.cpython-312.pyc +0 -0
  34. vbagent/cli/__pycache__/variant.cpython-312.pyc +0 -0
  35. vbagent/models/__pycache__/__init__.cpython-312.pyc +0 -0
  36. vbagent/models/__pycache__/batch.cpython-312.pyc +0 -0
  37. vbagent/models/__pycache__/classification.cpython-312.pyc +0 -0
  38. vbagent/models/__pycache__/diff.cpython-312.pyc +0 -0
  39. vbagent/models/__pycache__/idea.cpython-312.pyc +0 -0
  40. vbagent/models/__pycache__/pipeline.cpython-312.pyc +0 -0
  41. vbagent/models/__pycache__/review.cpython-312.pyc +0 -0
  42. vbagent/models/__pycache__/scan.cpython-312.pyc +0 -0
  43. vbagent/models/__pycache__/version_store.cpython-312.pyc +0 -0
  44. vbagent/prompts/__pycache__/__init__.cpython-312.pyc +0 -0
  45. vbagent/prompts/__pycache__/alternate.cpython-312.pyc +0 -0
  46. vbagent/prompts/__pycache__/clarity_checker.cpython-312.pyc +0 -0
  47. vbagent/prompts/__pycache__/classifier.cpython-312.pyc +0 -0
  48. vbagent/prompts/__pycache__/converter.cpython-312.pyc +0 -0
  49. vbagent/prompts/__pycache__/grammar_checker.cpython-312.pyc +0 -0
  50. vbagent/prompts/__pycache__/idea.cpython-312.pyc +0 -0
  51. vbagent/prompts/__pycache__/reviewer.cpython-312.pyc +0 -0
  52. vbagent/prompts/__pycache__/solution_checker.cpython-312.pyc +0 -0
  53. vbagent/prompts/__pycache__/tikz.cpython-312.pyc +0 -0
  54. vbagent/prompts/__pycache__/tikz_checker.cpython-312.pyc +0 -0
  55. vbagent/prompts/scanner/__pycache__/__init__.cpython-312.pyc +0 -0
  56. vbagent/prompts/scanner/__pycache__/assertion_reason.cpython-312.pyc +0 -0
  57. vbagent/prompts/scanner/__pycache__/common.cpython-312.pyc +0 -0
  58. vbagent/prompts/scanner/__pycache__/match.cpython-312.pyc +0 -0
  59. vbagent/prompts/scanner/__pycache__/mcq_mc.cpython-312.pyc +0 -0
  60. vbagent/prompts/scanner/__pycache__/mcq_sc.cpython-312.pyc +0 -0
  61. vbagent/prompts/scanner/__pycache__/passage.cpython-312.pyc +0 -0
  62. vbagent/prompts/scanner/__pycache__/subjective.cpython-312.pyc +0 -0
  63. vbagent/prompts/variants/__pycache__/__init__.cpython-312.pyc +0 -0
  64. vbagent/prompts/variants/__pycache__/conceptual.cpython-312.pyc +0 -0
  65. vbagent/prompts/variants/__pycache__/conceptual_calculus.cpython-312.pyc +0 -0
  66. vbagent/prompts/variants/__pycache__/context.cpython-312.pyc +0 -0
  67. vbagent/prompts/variants/__pycache__/multi_context.cpython-312.pyc +0 -0
  68. vbagent/prompts/variants/__pycache__/numerical.cpython-312.pyc +0 -0
  69. vbagent/references/__pycache__/__init__.cpython-312.pyc +0 -0
  70. vbagent/references/__pycache__/context.cpython-312.pyc +0 -0
  71. vbagent/references/__pycache__/store.cpython-312.pyc +0 -0
  72. vbagent/references/__pycache__/tikz_store.cpython-312.pyc +0 -0
  73. vbagent/templates/__pycache__/__init__.cpython-312.pyc +0 -0
  74. vbagent/templates/__pycache__/agentic_context.cpython-312.pyc +0 -0
  75. vbagent-0.1.0.dist-info/METADATA +0 -21
  76. vbagent-0.1.0.dist-info/RECORD +0 -148
  77. {vbagent-0.1.0.dist-info → vbagent-0.1.1.dist-info}/WHEEL +0 -0
  78. {vbagent-0.1.0.dist-info → vbagent-0.1.1.dist-info}/entry_points.txt +0 -0
vbagent/cli/batch.py CHANGED
@@ -36,12 +36,19 @@ def _get_table(*args, **kwargs):
36
36
  return Table(*args, **kwargs)
37
37
 
38
38
 
39
- class CaffeinateManager:
40
- """Manage caffeinate process to prevent sleep during batch processing."""
39
+ class SleepInhibitor:
40
+ """Cross-platform sleep prevention during batch processing.
41
+
42
+ Supports:
43
+ - macOS: caffeinate command
44
+ - Windows: SetThreadExecutionState API
45
+ - Linux: systemd-inhibit or falls back gracefully
46
+ """
41
47
 
42
48
  def __init__(self, console=None):
43
49
  self.process: Optional[subprocess.Popen] = None
44
50
  self._console = console
51
+ self._windows_previous_state = None
45
52
 
46
53
  def _get_console(self):
47
54
  """Get console instance, creating one if needed."""
@@ -50,22 +57,59 @@ class CaffeinateManager:
50
57
  return self._console
51
58
 
52
59
  def start(self):
53
- """Start caffeinate to prevent system sleep."""
54
- if sys.platform == "darwin": # macOS
55
- try:
56
- # -i: prevent idle sleep
57
- # -s: prevent system sleep (when on AC power)
58
- self.process = subprocess.Popen(
59
- ["caffeinate", "-i", "-s"],
60
- stdout=subprocess.DEVNULL,
61
- stderr=subprocess.DEVNULL,
62
- )
63
- self._get_console().print("[dim]☕ Caffeinate started - system will stay awake[/dim]")
64
- except FileNotFoundError:
65
- self._get_console().print("[yellow]Warning:[/yellow] caffeinate not found")
60
+ """Start sleep inhibition based on platform."""
61
+ if sys.platform == "darwin":
62
+ self._start_macos()
63
+ elif sys.platform == "win32":
64
+ self._start_windows()
65
+ elif sys.platform.startswith("linux"):
66
+ self._start_linux()
67
+ else:
68
+ self._get_console().print("[dim]Sleep prevention not available on this platform[/dim]")
69
+
70
+ def _start_macos(self):
71
+ """macOS: Use caffeinate command."""
72
+ try:
73
+ self.process = subprocess.Popen(
74
+ ["caffeinate", "-i", "-s"],
75
+ stdout=subprocess.DEVNULL,
76
+ stderr=subprocess.DEVNULL,
77
+ )
78
+ self._get_console().print("[dim]☕ Sleep inhibitor started (caffeinate)[/dim]")
79
+ except FileNotFoundError:
80
+ self._get_console().print("[yellow]Warning:[/yellow] caffeinate not found")
81
+
82
+ def _start_windows(self):
83
+ """Windows: Use SetThreadExecutionState API."""
84
+ try:
85
+ import ctypes
86
+ # ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED
87
+ ES_CONTINUOUS = 0x80000000
88
+ ES_SYSTEM_REQUIRED = 0x00000001
89
+ self._windows_previous_state = ctypes.windll.kernel32.SetThreadExecutionState(
90
+ ES_CONTINUOUS | ES_SYSTEM_REQUIRED
91
+ )
92
+ self._get_console().print("[dim]☕ Sleep inhibitor started (Windows API)[/dim]")
93
+ except Exception as e:
94
+ self._get_console().print(f"[yellow]Warning:[/yellow] Could not prevent sleep: {e}")
95
+
96
+ def _start_linux(self):
97
+ """Linux: Try systemd-inhibit, fall back gracefully."""
98
+ try:
99
+ # systemd-inhibit runs a command while inhibiting sleep
100
+ # We use 'sleep infinity' as a placeholder process
101
+ self.process = subprocess.Popen(
102
+ ["systemd-inhibit", "--what=idle:sleep", "--why=Batch processing",
103
+ "--mode=block", "sleep", "infinity"],
104
+ stdout=subprocess.DEVNULL,
105
+ stderr=subprocess.DEVNULL,
106
+ )
107
+ self._get_console().print("[dim]☕ Sleep inhibitor started (systemd-inhibit)[/dim]")
108
+ except FileNotFoundError:
109
+ self._get_console().print("[dim]Sleep prevention not available (systemd-inhibit not found)[/dim]")
66
110
 
67
111
  def stop(self):
68
- """Stop caffeinate process."""
112
+ """Stop sleep inhibition."""
69
113
  if self.process:
70
114
  self.process.terminate()
71
115
  try:
@@ -73,7 +117,17 @@ class CaffeinateManager:
73
117
  except subprocess.TimeoutExpired:
74
118
  self.process.kill()
75
119
  self.process = None
76
- self._get_console().print("[dim]☕ Caffeinate stopped[/dim]")
120
+ self._get_console().print("[dim]☕ Sleep inhibitor stopped[/dim]")
121
+
122
+ if sys.platform == "win32" and self._windows_previous_state is not None:
123
+ try:
124
+ import ctypes
125
+ ES_CONTINUOUS = 0x80000000
126
+ ctypes.windll.kernel32.SetThreadExecutionState(ES_CONTINUOUS)
127
+ self._windows_previous_state = None
128
+ self._get_console().print("[dim]☕ Sleep inhibitor stopped[/dim]")
129
+ except Exception:
130
+ pass
77
131
 
78
132
  def __enter__(self):
79
133
  self.start()
@@ -84,6 +138,10 @@ class CaffeinateManager:
84
138
  return False
85
139
 
86
140
 
141
+ # Backward compatibility alias
142
+ CaffeinateManager = SleepInhibitor
143
+
144
+
87
145
  def discover_images(images_dir: str, pattern: str = "*.png") -> list[str]:
88
146
  """Discover all images in a directory matching the pattern.
89
147
 
@@ -572,7 +630,7 @@ def _run_batch(
572
630
  if sys.platform != "win32":
573
631
  signal.signal(signal.SIGTERM, signal_handler)
574
632
 
575
- with CaffeinateManager(console=console):
633
+ with SleepInhibitor(console=console):
576
634
  pending = db.get_pending_images()
577
635
  total = len(pending)
578
636
 
@@ -0,0 +1,383 @@
1
+ Metadata-Version: 2.3
2
+ Name: vbagent
3
+ Version: 0.1.1
4
+ Summary: CLI tool for physics question image scanning, categorization, and variant generation
5
+ Author: vaibhavblayer
6
+ Author-email: vaibhavblayer@gmail.com
7
+ Requires-Python: >=3.12
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Provides-Extra: dev
12
+ Requires-Dist: click (>=8.1.0)
13
+ Requires-Dist: hypothesis (>=6.0.0) ; extra == "dev"
14
+ Requires-Dist: openai-agents (>=0.6.2)
15
+ Requires-Dist: pillow (>=10.0.0)
16
+ Requires-Dist: pydantic (>=2.0.0)
17
+ Requires-Dist: pytest (>=8.0.0) ; extra == "dev"
18
+ Requires-Dist: rich (>=13.0.0)
19
+ Description-Content-Type: text/markdown
20
+
21
+ # VBAgent
22
+
23
+ A multi-agent CLI tool for processing physics question images. Supports classification, LaTeX extraction, TikZ diagram generation, variant creation, and format conversion.
24
+
25
+ ## Installation
26
+
27
+ ### From PyPI
28
+
29
+ ```bash
30
+ pip install vbagent
31
+ ```
32
+
33
+ ### From Source
34
+
35
+ ```bash
36
+ # Clone the repository
37
+ git clone https://github.com/vaibhavblayer/vbagent.git
38
+ cd vbagent
39
+
40
+ # Install with pip
41
+ pip install .
42
+
43
+ # Or install in development mode
44
+ pip install -e .
45
+
46
+ # Or using Poetry
47
+ poetry install
48
+ ```
49
+
50
+ ## Requirements
51
+
52
+ - Python 3.12+
53
+ - OpenAI API key (set as `OPENAI_API_KEY` environment variable)
54
+
55
+ ## Configuration
56
+
57
+ Set your OpenAI API key:
58
+
59
+ ```bash
60
+ export OPENAI_API_KEY="your-api-key"
61
+ ```
62
+
63
+ Or configure via the CLI:
64
+
65
+ ```bash
66
+ vbagent config set api-key YOUR_API_KEY
67
+ ```
68
+
69
+ ## Usage
70
+
71
+ ### Quick Start
72
+
73
+ ```bash
74
+ # Scan a physics question image to LaTeX
75
+ vbagent scan -i question.png -o output.tex
76
+
77
+ # Classify a question type
78
+ vbagent classify -i question.png
79
+
80
+ # Generate TikZ diagram from image
81
+ vbagent tikz -i diagram.png -o diagram.tex
82
+
83
+ # Generate problem variants
84
+ vbagent variant -t problem.tex -o variants.tex
85
+ ```
86
+
87
+ ### Commands
88
+
89
+ | Command | Description |
90
+ |---------|-------------|
91
+ | `classify` | Classify physics question image type |
92
+ | `scan` | Extract LaTeX from question image |
93
+ | `tikz` | Generate TikZ/PGF code for diagrams |
94
+ | `idea` | Extract physics concepts and ideas |
95
+ | `alternate` | Generate alternative solutions |
96
+ | `variant` | Generate problem variants (numerical, conceptual, context) |
97
+ | `convert` | Convert between question formats |
98
+ | `process` | Run full processing pipeline |
99
+ | `batch` | Batch process multiple images with resume capability |
100
+ | `ref` | Manage reference context files |
101
+ | `config` | Configure models and settings |
102
+ | `check` | QA review with interactive approval |
103
+
104
+ ### Batch Processing
105
+
106
+ Process multiple images with automatic resume on interruption:
107
+
108
+ ```bash
109
+ # Initialize batch processing
110
+ vbagent batch init -i ./images -o ./output
111
+
112
+ # Continue processing (resumes from where it left off)
113
+ vbagent batch continue
114
+
115
+ # Check status
116
+ vbagent batch status
117
+ ```
118
+
119
+ ### Full Pipeline
120
+
121
+ Process a single image through the complete pipeline:
122
+
123
+ ```bash
124
+ # Basic processing (classify + scan + tikz)
125
+ vbagent process -i question.png
126
+
127
+ # With ideas extraction
128
+ vbagent process -i question.png --ideas
129
+
130
+ # With alternate solutions
131
+ vbagent process -i question.png --alternate
132
+
133
+ # With variant generation
134
+ vbagent process -i question.png --variants numerical,context
135
+
136
+ # Full pipeline with all features
137
+ vbagent process -i question.png --ideas --alternate --variants numerical,context,conceptual
138
+ ```
139
+
140
+ Process a range of images:
141
+
142
+ ```bash
143
+ # Process Problem_1.png through Problem_5.png
144
+ vbagent process -i images/Problem_1.png -r 1 5
145
+
146
+ # Process range with parallel workers (faster)
147
+ vbagent process -i images/Problem_1.png -r 1 10 --parallel 3
148
+
149
+ # Process range with all features
150
+ vbagent process -i images/Problem_1.png -r 1 5 --ideas --alternate --variants numerical
151
+ ```
152
+
153
+ Process TeX file with multiple items:
154
+
155
+ ```bash
156
+ # Process items 1-5 from a TeX file
157
+ vbagent process -t problems.tex --range 1 5
158
+
159
+ # With alternate solutions and ideas
160
+ vbagent process -t problems.tex --range 1 5 --alternate --ideas
161
+ ```
162
+
163
+ Custom output directory:
164
+
165
+ ```bash
166
+ vbagent process -i question.png -o ./my_output
167
+ ```
168
+
169
+ #### Process Command Options
170
+
171
+ | Option | Description |
172
+ |--------|-------------|
173
+ | `-i, --image` | Image file to process |
174
+ | `-t, --tex` | TeX file containing problems |
175
+ | `-r, --range` | Range of items to process (1-based, inclusive) |
176
+ | `--variants` | Variant types (comma-separated: numerical,context,conceptual,calculus) |
177
+ | `--alternate` | Generate alternate solutions |
178
+ | `--ideas` | Extract physics concepts |
179
+ | `--ref` | Reference directories for TikZ |
180
+ | `-o, --output` | Output directory (default: agentic) |
181
+ | `--context` | Use reference context (default: yes) |
182
+ | `-p, --parallel` | Parallel workers for batch (default: 1, max: 10) |
183
+
184
+ #### Output Structure
185
+
186
+ ```
187
+ agentic/
188
+ ├── scans/problem_1.tex # Extracted LaTeX
189
+ ├── classifications/problem_1.json # Question metadata
190
+ ├── tikz/problem_1.tex # Generated TikZ diagrams
191
+ ├── ideas/problem_1.json # Physics concepts (if --ideas)
192
+ ├── alternates/problem_1.tex # Alternate solutions (if --alternate)
193
+ ├── variants/
194
+ │ ├── numerical/problem_1.tex # Numerical variants
195
+ │ ├── context/problem_1.tex # Context variants
196
+ │ └── conceptual/problem_1.tex # Conceptual variants
197
+ └── CONTEXT.md # Documentation for AI agents
198
+ ```
199
+
200
+ ### Help
201
+
202
+ ```bash
203
+ # General help
204
+ vbagent --help
205
+
206
+ # Command-specific help
207
+ vbagent scan --help
208
+ vbagent variant --help
209
+ ```
210
+
211
+ ### Scan Command
212
+
213
+ Extract LaTeX from physics question images:
214
+
215
+ ```bash
216
+ # Basic scan with auto-classification
217
+ vbagent scan -i question.png
218
+
219
+ # Save output to file
220
+ vbagent scan -i question.png -o output.tex
221
+
222
+ # Override question type (skip classification)
223
+ vbagent scan -i question.png --type mcq_sc
224
+ ```
225
+
226
+ ### Variant Command
227
+
228
+ Generate problem variants with controlled modifications:
229
+
230
+ ```bash
231
+ # Numerical variant (change numbers only)
232
+ vbagent variant -t problem.tex --type numerical
233
+
234
+ # Context variant (change scenario)
235
+ vbagent variant -t problem.tex --type context
236
+
237
+ # Generate multiple variants
238
+ vbagent variant -t problem.tex --type numerical --count 3
239
+
240
+ # Process range of items
241
+ vbagent variant -t problems.tex --type numerical -r 1 5
242
+
243
+ # Multi-context variant (combine problems)
244
+ vbagent variant --type multi --context p1.tex --context p2.tex -o combined.tex
245
+
246
+ # From image (scans first)
247
+ vbagent variant -i image.png --type numerical -o variant.tex
248
+ ```
249
+
250
+ #### Variant Types
251
+
252
+ | Type | Description |
253
+ |------|-------------|
254
+ | `numerical` | Change only numbers, keep context |
255
+ | `context` | Change scenario, keep numbers |
256
+ | `conceptual` | Change physics concept |
257
+ | `calculus` | Add calculus elements |
258
+ | `multi` | Combine multiple problems |
259
+
260
+ ### Alternate Command
261
+
262
+ Generate alternative solution methods:
263
+
264
+ ```bash
265
+ # Generate one alternate solution
266
+ vbagent alternate -t problem.tex
267
+
268
+ # Generate multiple alternates
269
+ vbagent alternate -t problem.tex -n 3
270
+
271
+ # With ideas context
272
+ vbagent alternate -t problem.tex --ideas ideas.json
273
+
274
+ # Save to file
275
+ vbagent alternate -t problem.tex -n 2 -o alternates.tex
276
+ ```
277
+
278
+ ### Check Command (QA Review)
279
+
280
+ AI-powered quality review with interactive approval workflow:
281
+
282
+ ```bash
283
+ # Start a review session (random 5 problems)
284
+ vbagent check run
285
+
286
+ # Review more problems
287
+ vbagent check run -c 10
288
+
289
+ # Review specific problem
290
+ vbagent check run -p Problem_42
291
+
292
+ # Review from specific directory
293
+ vbagent check run -d ./my_output
294
+
295
+ # View suggestion history
296
+ vbagent check history
297
+
298
+ # Apply a stored suggestion
299
+ vbagent check apply 42
300
+
301
+ # Resume interrupted session
302
+ vbagent check resume abc123
303
+ ```
304
+
305
+ #### Check Subcommands
306
+
307
+ | Subcommand | Description |
308
+ |------------|-------------|
309
+ | `run` | Start a random QA review session |
310
+ | `history` | View suggestion history |
311
+ | `apply` | Apply a stored suggestion by ID |
312
+ | `resume` | Resume an interrupted session |
313
+ | `solution` | Check solution correctness |
314
+ | `grammar` | Check grammar and spelling |
315
+ | `clarity` | Check clarity and conciseness |
316
+ | `tikz` | Check TikZ diagram code |
317
+
318
+ ### TikZ Command
319
+
320
+ Generate TikZ/PGF code for diagrams:
321
+
322
+ ```bash
323
+ # From image
324
+ vbagent tikz -i diagram.png
325
+
326
+ # With description
327
+ vbagent tikz -d "A block on an inclined plane with friction"
328
+
329
+ # Save to file
330
+ vbagent tikz -i diagram.png -o diagram.tex
331
+
332
+ # With reference directories
333
+ vbagent tikz -i diagram.png --ref ./tikz_examples/
334
+ ```
335
+
336
+ ### Idea Command
337
+
338
+ Extract physics concepts and ideas from problems:
339
+
340
+ ```bash
341
+ # From TeX file
342
+ vbagent idea -t problem.tex
343
+
344
+ # Save to JSON
345
+ vbagent idea -t problem.tex -o ideas.json
346
+ ```
347
+
348
+ ## Supported Question Types
349
+
350
+ - MCQ Single Correct
351
+ - MCQ Multiple Correct
352
+ - Assertion-Reason
353
+ - Match the Following
354
+ - Passage/Comprehension
355
+ - Subjective/Numerical
356
+
357
+ ## Variant Types
358
+
359
+ - **Numerical**: Change numerical values while preserving physics
360
+ - **Conceptual**: Modify the underlying concept
361
+ - **Context**: Change the real-world scenario
362
+
363
+ ## Platform Support
364
+
365
+ Works on macOS, Windows, and Linux. Sleep prevention during batch processing is supported on all platforms.
366
+
367
+ ## Development
368
+
369
+ ```bash
370
+ # Install dev dependencies
371
+ pip install -e ".[dev]"
372
+
373
+ # Run tests
374
+ pytest
375
+
376
+ # Run specific test
377
+ pytest tests/test_scanner.py -v
378
+ ```
379
+
380
+ ## License
381
+
382
+ MIT
383
+
@@ -0,0 +1,77 @@
1
+ vbagent/__init__.py,sha256=r1lVIUy-n14VhPGONT7S6N6GJJc-loVKeOBBQ3ZQiic,90
2
+ vbagent/agents/__init__.py,sha256=NR-ucB5QDKvKhBnsLwZTfCL762F0UFm8g44OAQUln8U,3851
3
+ vbagent/agents/alternate.py,sha256=KQXsFMtQPUAWElTFYbWvFf1RqP9HDjK3hA4s7PkIlPE,5791
4
+ vbagent/agents/base.py,sha256=iwqAy5g-jkFHzkJ6eFpmori95ZVjKwfIbAGpWE8AomA,6477
5
+ vbagent/agents/clarity_checker.py,sha256=Qa2eMMcPH08z4e8kpwK-eUp1WGXsplaVpfGbdfWY5Us,3710
6
+ vbagent/agents/classifier.py,sha256=1gbr_yCHyObL1EeWZv1SYUdmV1cafoCfZSB0fqTyo1k,1148
7
+ vbagent/agents/converter.py,sha256=dcTnkL2WkK9TtnFJMHrIms4XZ_1YNNTCONQU-2HAbj0,3266
8
+ vbagent/agents/grammar_checker.py,sha256=niU33_z_V-LhrYNY494aA4yzB2SfoQQmhe4qf2fAQqI,3660
9
+ vbagent/agents/idea.py,sha256=Qlu6C7yryUVLiwSKQrKfVKctLbK1ELZrlvK8LGSr12E,3827
10
+ vbagent/agents/multi_variant.py,sha256=N3x-EtAIkDLRuoMHrrEcviVzSuSqEy0xvRznuFSuYlk,2158
11
+ vbagent/agents/reviewer.py,sha256=ZDLaoxUCrdSCTy8Uab49o9e7-RPALhUvj6VDGTE4cXw,11951
12
+ vbagent/agents/scanner.py,sha256=haFmoAtRMTuKVWd8u4x9NuFYGkeIS0fkBChlbkTiqK8,4316
13
+ vbagent/agents/selector.py,sha256=lFnrgG6Gw85M189o7q0BaGNhYbtGhV3KHydmTR9Pxmc,4751
14
+ vbagent/agents/solution_checker.py,sha256=tRlTn8EgFtLQ-drz2mCDLZ9ZOLAQ4hP4kFRrANj4Q1k,3984
15
+ vbagent/agents/tikz.py,sha256=4Iun65onPD2nrNXfGkhVnk5rj_R8E78CX_BhoABMeK8,7544
16
+ vbagent/agents/tikz_checker.py,sha256=pgnbiIuZBWEmhgluhlSBCe4LjKpbX5EVrvzniITazxI,4824
17
+ vbagent/agents/variant.py,sha256=zMg2h7zwBM2CH2IrwkQm6bbeOEmotNLKJ58n3LoM-bI,5683
18
+ vbagent/cli/__init__.py,sha256=6rRsugM0JyxdwUZMFfdJxLwJ-TX-VwpR-5oiWP32EZ0,31
19
+ vbagent/cli/alternate.py,sha256=GNynCs5S1XYJhLRgL_BsTfelrkgfNbIACtp4UUiHArU,5448
20
+ vbagent/cli/batch.py,sha256=RO9O_Qw0LOT6U0lTbM8oZeWWF4tBkSFBOdAizG-kJGA,23322
21
+ vbagent/cli/check.py,sha256=E_PU_p1l-wIxPlxHH6lk_jUuNRndNHZhHd9NJlQKMqE,110898
22
+ vbagent/cli/classify.py,sha256=f8RxAimwLQhsY_cPz1ObEehbb6SB-Wv6Dx4y5KCasho,3542
23
+ vbagent/cli/common.py,sha256=CKcQ69JLaBE7KepRoN0TuongXBWnTqodyY079T8p98Y,23585
24
+ vbagent/cli/config.py,sha256=9-Sy4kQ7ozr9uKiohrNjbvJeGZrZ1p61-CFkJ6FDLrU,5722
25
+ vbagent/cli/convert.py,sha256=nbJD6fiOel7ivQQnKGb4VfufXXJl4dtvqjjzGPHEjqQ,7971
26
+ vbagent/cli/idea.py,sha256=BQ6WCJ7MlD8U1xyGs1cBsQa-ppGVD_J3_HGMNklOP5o,5166
27
+ vbagent/cli/main.py,sha256=GaR7QWHD7Wf5p8mqHu9JLaDfBxqAqEJf4n2L7-pK4gg,3157
28
+ vbagent/cli/process.py,sha256=31SRyVZzXdGthwlWZa4IPdX5ioye2cZgOgcBLAgk1Sc,41874
29
+ vbagent/cli/ref.py,sha256=YnJSRG3kVl2NyvxHDIGOno0EF0h0EvNKME3oVGAMMZQ,20074
30
+ vbagent/cli/scan.py,sha256=ALtszwhahIu3sYNSIKWAcDz_WEssAgAy7FfYkjta3vs,4502
31
+ vbagent/cli/tikz.py,sha256=pEA0QYOrGzjkKdaV3qD_X9JEgrqDQZU2wjoT77am3-s,4113
32
+ vbagent/cli/variant.py,sha256=fTh7jjcWC8UUXxxZjb5Hk6FY4CdOIjdd15Ktb5unVMA,9474
33
+ vbagent/config.py,sha256=zA0JZQoy2lsdG7wANj-_EDjjDW5Xtf86BwNi_K1lANA,9095
34
+ vbagent/models/__init__.py,sha256=sYhUcFMs0SjcjsQCEuPLpkfDEiysH8dJJ20Qg6ch3C4,1655
35
+ vbagent/models/batch.py,sha256=-39pKC0-6uWRiN33RRQmqSTUjglaPbAqN2KvztK4Cq8,13228
36
+ vbagent/models/classification.py,sha256=8dxg4rJ3S_7njZ2CCbLMFlRdWINYcaOJDqKdDsWbHOs,1507
37
+ vbagent/models/diff.py,sha256=otaF7RiQatdvCoowpyiBbCAzHJV1JxWYOoniRO2aIsM,13093
38
+ vbagent/models/idea.py,sha256=c5GeWa3nqJA62hKcOdHjzMS4fZ2yQtbMn4yq4VC5EWs,678
39
+ vbagent/models/pipeline.py,sha256=ul4LUpxoqehGiPeF4IE0IJk-4-Kn3o39-T2DtdpM3rs,872
40
+ vbagent/models/review.py,sha256=gOsoIFMkKhAUNjT8btlPkWtDCtx7rWiY4xKSQOxNccQ,2615
41
+ vbagent/models/scan.py,sha256=5-L5x0L7z7TL0i992nHlA5R7AtVihQw4sF14N2hjQ1w,470
42
+ vbagent/models/version_store.py,sha256=HzISHfuQjl_7E61U826QuAhqd19li9xvG3xyiQhmJRE,32590
43
+ vbagent/prompts/__init__.py,sha256=kFKSHBhhK5U0rzxsUuXXF3kyO1vOcxLGH0a7UaxQVRc,41
44
+ vbagent/prompts/alternate.py,sha256=4CT_dbTt-weIsQmTgXUr3n2Ppmnvp55woxxl6ptUK48,4070
45
+ vbagent/prompts/clarity_checker.py,sha256=YcP5CmIhjP6EeLM-NDEZ5sSExMjiamE9KPK_d25-4qg,1642
46
+ vbagent/prompts/classifier.py,sha256=BAop4YDcP4VnHJKgppnXEOilVJ7CpoNru5HJA0jrWU0,1304
47
+ vbagent/prompts/converter.py,sha256=TnFpEN_FkJhJwHRjx6okO0v675zX0aXSxPOsMliFlpo,4944
48
+ vbagent/prompts/grammar_checker.py,sha256=AYqtscYZYPgQJ0_rVCtos8OwqYSwyFSdP48z5d2YxJ4,1571
49
+ vbagent/prompts/idea.py,sha256=sYtCCBoqgwlei2WESaZyswn3AgShnHPHeQTUfDQxbIg,5151
50
+ vbagent/prompts/reviewer.py,sha256=81xe5N-PZk1lML4ti_R7y1PNUW5_XG5DIzH_thSUAyQ,5046
51
+ vbagent/prompts/scanner/__init__.py,sha256=7a3zOdrKEiqga5b00FBpGNOj-tYWyPQznYTW803P4jE,2207
52
+ vbagent/prompts/scanner/assertion_reason.py,sha256=eBQ9pk-2a3BEAIlo6i7Mlk5Nv-KL2LUUlytfct8t89s,3467
53
+ vbagent/prompts/scanner/common.py,sha256=vtMsPOJcWAZO1q3ZtPpSEqhtXry3_lpyv-hScVtz5oY,9396
54
+ vbagent/prompts/scanner/match.py,sha256=vUUFZAX-KdOG5fEtS9KtpOr5IZJVS_9uHEXnx7_2aIU,3683
55
+ vbagent/prompts/scanner/mcq_mc.py,sha256=_V4XNQb2DAbbsKwFL0DTdN7laP_YhBq0-Nm-b681QDo,3928
56
+ vbagent/prompts/scanner/mcq_sc.py,sha256=UNXcGaJshAKCE7shfRup-wR44Zld-6N-cPV3wsiV9Jo,3744
57
+ vbagent/prompts/scanner/passage.py,sha256=S-26mg6gC7mSHjk8PFH2c8vKg40VNlLfnFhdJ0H1pyE,3171
58
+ vbagent/prompts/scanner/subjective.py,sha256=lgBHUzkMR9F37gI9oUnvjVpaDqe_9_TnO07awFEWT78,2992
59
+ vbagent/prompts/solution_checker.py,sha256=L0H3GLNtNAGb36_FL8vkPwmhFSStfKVDilPOSpzQLU4,3919
60
+ vbagent/prompts/tikz.py,sha256=PAGdye_dHFTf7FBX8O0MYNnb3r8OaxUgoD0E2TTtjgI,18102
61
+ vbagent/prompts/tikz_checker.py,sha256=JIML1h4GOoLrAkwxTR26wBevYTxzm7v_yiSYHnujNZw,7730
62
+ vbagent/prompts/variants/__init__.py,sha256=evniFs1M6qnarvU-tjaZie5vWqBNgEdgEprPmJSzRVQ,903
63
+ vbagent/prompts/variants/conceptual.py,sha256=JKgW8_i4n41FXAfHzieUceGgVO2HaGtdK9pc_iQSkKI,2919
64
+ vbagent/prompts/variants/conceptual_calculus.py,sha256=XU49vqqINGKHxmPU-afkYz1VNZif8_iJEWmqC3JbBp4,3234
65
+ vbagent/prompts/variants/context.py,sha256=rxTIOyqQzfDbLTZCfNuh0ChzfoS9lJhpO4R0wdPsZ8w,2710
66
+ vbagent/prompts/variants/multi_context.py,sha256=HcYcadyJaVYUiEWOddCJSmENn6ggaQ2wP3VfUGnje4o,3078
67
+ vbagent/prompts/variants/numerical.py,sha256=d0Y7MopbCTbJ7QIaiF17Z8gguud7rRFPx3oqatyHKz8,2828
68
+ vbagent/references/__init__.py,sha256=BsJrB4Uf8Xbk0f6lgHh4RdSaI9G83bmcbUcE9lxPkw8,156
69
+ vbagent/references/context.py,sha256=uUv3zALWHcP9C5jpVdj68lar7Mfoa7x8ICfoh5u2nH8,12652
70
+ vbagent/references/store.py,sha256=caCFfw9cmtEI_b6TJeNRnmED9MLDiwpwDPouvtn2Ecc,10756
71
+ vbagent/references/tikz_store.py,sha256=FQl_v_4pD8BvIbJEpI3dQF2IniF2IZKynk7bmNy-IDw,17473
72
+ vbagent/templates/__init__.py,sha256=HhQO2KvTbxPfgyMzC7cTlY_vqSI46oWO6E2Ljz-mpgQ,152
73
+ vbagent/templates/agentic_context.py,sha256=qB3ofjmmO2dFgq2RZeE7_0w6oXOVMImM1IMK91G-pfs,6246
74
+ vbagent-0.1.1.dist-info/METADATA,sha256=_BUULcFrmaJliDWa6g17jczELmmCP0K4nltp7k1sJQs,9087
75
+ vbagent-0.1.1.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
76
+ vbagent-0.1.1.dist-info/entry_points.txt,sha256=94i1UBZsJ9uPiLHJW1CEk8Oh7zfWdp2aWZmWRGLCjAk,49
77
+ vbagent-0.1.1.dist-info/RECORD,,
Binary file
@@ -1,21 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: vbagent
3
- Version: 0.1.0
4
- Summary: CLI tool for physics question image scanning, categorization, and variant generation
5
- Author: vaibhavblayer
6
- Author-email: vaibhavblayer@gmail.com
7
- Requires-Python: >=3.12
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.12
10
- Classifier: Programming Language :: Python :: 3.13
11
- Provides-Extra: dev
12
- Requires-Dist: click (>=8.1.0)
13
- Requires-Dist: hypothesis (>=6.0.0) ; extra == "dev"
14
- Requires-Dist: openai-agents (>=0.6.2)
15
- Requires-Dist: pillow (>=10.0.0)
16
- Requires-Dist: pydantic (>=2.0.0)
17
- Requires-Dist: pytest (>=8.0.0) ; extra == "dev"
18
- Requires-Dist: rich (>=13.0.0)
19
- Description-Content-Type: text/markdown
20
-
21
-
@@ -1,148 +0,0 @@
1
- vbagent/__init__.py,sha256=r1lVIUy-n14VhPGONT7S6N6GJJc-loVKeOBBQ3ZQiic,90
2
- vbagent/agents/__init__.py,sha256=NR-ucB5QDKvKhBnsLwZTfCL762F0UFm8g44OAQUln8U,3851
3
- vbagent/agents/__pycache__/__init__.cpython-312.pyc,sha256=XkefgM_GLbzr_n9m-4JaG1NHAg6NWg_yYlOaq38rKlk,2901
4
- vbagent/agents/__pycache__/alternate.cpython-312.pyc,sha256=C6J0EW3El5ZtKI6espRNwBpvXKEm5cUMg_2QJVLb1NE,5995
5
- vbagent/agents/__pycache__/base.cpython-312.pyc,sha256=3o0yKCt3SnBV2lxXcgBeJGutIn_psvKXD40kYrr76Hw,7540
6
- vbagent/agents/__pycache__/clarity_checker.cpython-312.pyc,sha256=TNOcp40edfXhQqfBU9_zkMloepCg8PspOXCVt66ov9o,4533
7
- vbagent/agents/__pycache__/classifier.cpython-312.pyc,sha256=y0-vgOTWI63PwPp4H0hOgHSbFKWDatRJJqWFHLsyaPQ,1399
8
- vbagent/agents/__pycache__/converter.cpython-312.pyc,sha256=9TVNMMvGkvQcZmY-IErwmANgkIXtVApHJqmsZRwlfv8,3349
9
- vbagent/agents/__pycache__/grammar_checker.cpython-312.pyc,sha256=0--UkKBMbbadfHDNoft9KY5e88_-JHDABHwJ61xGSCk,4483
10
- vbagent/agents/__pycache__/idea.cpython-312.pyc,sha256=Q3Y35rIn-QX03C1Z9t56l9KtBxCyRy9grYL6fEurnDk,4438
11
- vbagent/agents/__pycache__/multi_variant.cpython-312.pyc,sha256=4twnt76CxZVNn3ee4-aCZmExe-CMNzgggNPKaqoCd9U,2611
12
- vbagent/agents/__pycache__/reviewer.cpython-312.pyc,sha256=bK2N7eAgmHvhsSJFU0bhwk08dJr9XnEiAODFYPx3JGg,12828
13
- vbagent/agents/__pycache__/scanner.cpython-312.pyc,sha256=7yvwMrysTjYWql_CzaS5tu1ks-Q5gsr4VSFzFZJLBpM,4562
14
- vbagent/agents/__pycache__/selector.cpython-312.pyc,sha256=2KHgpJLdRTJwTBlt43Rrbshxav_ZTXU4E9bDQLnGOg8,4935
15
- vbagent/agents/__pycache__/solution_checker.cpython-312.pyc,sha256=dfXcs6rmv4gn4MTb0KdLTHkYkLWEBwRO8MbiD_djpzA,4753
16
- vbagent/agents/__pycache__/tikz.cpython-312.pyc,sha256=CZ5R2eMJxFyV96wQVzZBwKV7nPquddc1O3dWR8nLjn0,7910
17
- vbagent/agents/__pycache__/tikz_checker.cpython-312.pyc,sha256=_ZwI74DW5y5MJI1G9glri3so3jEOzHRiVaFkiRsXn94,5544
18
- vbagent/agents/__pycache__/variant.cpython-312.pyc,sha256=YacgJeKupDAKIFxQgQ1pqtk0R7_fNJhCSA2Xc0FvsiA,5657
19
- vbagent/agents/alternate.py,sha256=KQXsFMtQPUAWElTFYbWvFf1RqP9HDjK3hA4s7PkIlPE,5791
20
- vbagent/agents/base.py,sha256=iwqAy5g-jkFHzkJ6eFpmori95ZVjKwfIbAGpWE8AomA,6477
21
- vbagent/agents/clarity_checker.py,sha256=Qa2eMMcPH08z4e8kpwK-eUp1WGXsplaVpfGbdfWY5Us,3710
22
- vbagent/agents/classifier.py,sha256=1gbr_yCHyObL1EeWZv1SYUdmV1cafoCfZSB0fqTyo1k,1148
23
- vbagent/agents/converter.py,sha256=dcTnkL2WkK9TtnFJMHrIms4XZ_1YNNTCONQU-2HAbj0,3266
24
- vbagent/agents/grammar_checker.py,sha256=niU33_z_V-LhrYNY494aA4yzB2SfoQQmhe4qf2fAQqI,3660
25
- vbagent/agents/idea.py,sha256=Qlu6C7yryUVLiwSKQrKfVKctLbK1ELZrlvK8LGSr12E,3827
26
- vbagent/agents/multi_variant.py,sha256=N3x-EtAIkDLRuoMHrrEcviVzSuSqEy0xvRznuFSuYlk,2158
27
- vbagent/agents/reviewer.py,sha256=ZDLaoxUCrdSCTy8Uab49o9e7-RPALhUvj6VDGTE4cXw,11951
28
- vbagent/agents/scanner.py,sha256=haFmoAtRMTuKVWd8u4x9NuFYGkeIS0fkBChlbkTiqK8,4316
29
- vbagent/agents/selector.py,sha256=lFnrgG6Gw85M189o7q0BaGNhYbtGhV3KHydmTR9Pxmc,4751
30
- vbagent/agents/solution_checker.py,sha256=tRlTn8EgFtLQ-drz2mCDLZ9ZOLAQ4hP4kFRrANj4Q1k,3984
31
- vbagent/agents/tikz.py,sha256=4Iun65onPD2nrNXfGkhVnk5rj_R8E78CX_BhoABMeK8,7544
32
- vbagent/agents/tikz_checker.py,sha256=pgnbiIuZBWEmhgluhlSBCe4LjKpbX5EVrvzniITazxI,4824
33
- vbagent/agents/variant.py,sha256=zMg2h7zwBM2CH2IrwkQm6bbeOEmotNLKJ58n3LoM-bI,5683
34
- vbagent/cli/__init__.py,sha256=6rRsugM0JyxdwUZMFfdJxLwJ-TX-VwpR-5oiWP32EZ0,31
35
- vbagent/cli/__pycache__/__init__.cpython-312.pyc,sha256=zfkgM0CzmoIcksuuqPOG0l-ES1disqzhG7rQ56w3odI,202
36
- vbagent/cli/__pycache__/alternate.cpython-312.pyc,sha256=L1xjLl5Wp4IlsT2jKI0Nh2z7iYfJwkJmiSTTd-W-W-g,6863
37
- vbagent/cli/__pycache__/batch.cpython-312.pyc,sha256=yunLXxPxs2llNBmh5IKcP9_p_RtJ3o9TnpQtgsnmbjk,25451
38
- vbagent/cli/__pycache__/check.cpython-312.pyc,sha256=xUZiX25voIThrfsNuXrByp_qChPMF29U1cp-Ob_wFkA,107829
39
- vbagent/cli/__pycache__/classify.cpython-312.pyc,sha256=sGcW2G-ioMvdQqQHEUYiGL70qDj1ZVsO_UakNYt_ngk,5281
40
- vbagent/cli/__pycache__/common.cpython-312.pyc,sha256=zVFTn-3T6v0lAEJpL72Xnpim_zxBEwCphmcl7e1Tjns,26026
41
- vbagent/cli/__pycache__/config.cpython-312.pyc,sha256=ebHHsDq5KjGOPtfzDFl6SKvy3TgR4gzIxVyuUi7bVv0,7934
42
- vbagent/cli/__pycache__/convert.cpython-312.pyc,sha256=ig7Rn0Lb3B9fHfe-Gx4MC2fS78exdRmRmpOwVki9N84,9267
43
- vbagent/cli/__pycache__/idea.cpython-312.pyc,sha256=IAg_OUEOMsSnglw9RqrvWXlYvyS_mPmp7PE_F2wmatM,7526
44
- vbagent/cli/__pycache__/main.cpython-312.pyc,sha256=VH6PGPV1qjCjtAAGKVL8k52o2T_QJQLKgz1SvGkkJaI,4322
45
- vbagent/cli/__pycache__/process.cpython-312.pyc,sha256=foZM2FzHg37Nn4qKHlH9xp4wz2MpoU2lxDKorAMjRr8,40347
46
- vbagent/cli/__pycache__/ref.cpython-312.pyc,sha256=PwYc6HjXGQyqbLKOWczxl1R1h0rXnEBbmPj_a_1-nwM,26660
47
- vbagent/cli/__pycache__/scan.cpython-312.pyc,sha256=VBI39Fc0uWOGTmvKwrjQaZp4xgQLziujpQO9FlOsmlk,5858
48
- vbagent/cli/__pycache__/tikz.cpython-312.pyc,sha256=7ze12uVSNqbPq3U2O1-D0E-2cVyFye3Pd3YB7XdbaMM,5145
49
- vbagent/cli/__pycache__/variant.cpython-312.pyc,sha256=RmyvNVvbPYoDuaHP4l8wGkuEV1pGRMLV0pUPNVJuY1s,11013
50
- vbagent/cli/alternate.py,sha256=GNynCs5S1XYJhLRgL_BsTfelrkgfNbIACtp4UUiHArU,5448
51
- vbagent/cli/batch.py,sha256=6cZ_RtKBmDnZSUpnoG2APyVBtFaLim9fzgrX0xypn_8,20976
52
- vbagent/cli/check.py,sha256=E_PU_p1l-wIxPlxHH6lk_jUuNRndNHZhHd9NJlQKMqE,110898
53
- vbagent/cli/classify.py,sha256=f8RxAimwLQhsY_cPz1ObEehbb6SB-Wv6Dx4y5KCasho,3542
54
- vbagent/cli/common.py,sha256=CKcQ69JLaBE7KepRoN0TuongXBWnTqodyY079T8p98Y,23585
55
- vbagent/cli/config.py,sha256=9-Sy4kQ7ozr9uKiohrNjbvJeGZrZ1p61-CFkJ6FDLrU,5722
56
- vbagent/cli/convert.py,sha256=nbJD6fiOel7ivQQnKGb4VfufXXJl4dtvqjjzGPHEjqQ,7971
57
- vbagent/cli/idea.py,sha256=BQ6WCJ7MlD8U1xyGs1cBsQa-ppGVD_J3_HGMNklOP5o,5166
58
- vbagent/cli/main.py,sha256=GaR7QWHD7Wf5p8mqHu9JLaDfBxqAqEJf4n2L7-pK4gg,3157
59
- vbagent/cli/process.py,sha256=31SRyVZzXdGthwlWZa4IPdX5ioye2cZgOgcBLAgk1Sc,41874
60
- vbagent/cli/ref.py,sha256=YnJSRG3kVl2NyvxHDIGOno0EF0h0EvNKME3oVGAMMZQ,20074
61
- vbagent/cli/scan.py,sha256=ALtszwhahIu3sYNSIKWAcDz_WEssAgAy7FfYkjta3vs,4502
62
- vbagent/cli/tikz.py,sha256=pEA0QYOrGzjkKdaV3qD_X9JEgrqDQZU2wjoT77am3-s,4113
63
- vbagent/cli/variant.py,sha256=fTh7jjcWC8UUXxxZjb5Hk6FY4CdOIjdd15Ktb5unVMA,9474
64
- vbagent/config.py,sha256=zA0JZQoy2lsdG7wANj-_EDjjDW5Xtf86BwNi_K1lANA,9095
65
- vbagent/models/__init__.py,sha256=sYhUcFMs0SjcjsQCEuPLpkfDEiysH8dJJ20Qg6ch3C4,1655
66
- vbagent/models/__pycache__/__init__.cpython-312.pyc,sha256=e25xoGHpdTPTo-BQIaSCE4tROWMm8rwI3Mk0Sa4PxgY,1625
67
- vbagent/models/__pycache__/batch.cpython-312.pyc,sha256=3IglaIjWoEi1wL55M_Q4mpYlXMEXaoMO3ro_ta6IMf8,18031
68
- vbagent/models/__pycache__/classification.cpython-312.pyc,sha256=eRRtltYHwYauTfZtOu7FhbOo-dffrC8Y3OQRmILdo2Y,2157
69
- vbagent/models/__pycache__/diff.cpython-312.pyc,sha256=ppkFlvzJ_fCIva7xvBxLX6UYpNdU9mILm43x_8GaOqA,13467
70
- vbagent/models/__pycache__/idea.cpython-312.pyc,sha256=FMPrDE7CBKG3T7P5XRIsGShWTzVfR4JI87iLbFXEeZI,1115
71
- vbagent/models/__pycache__/pipeline.cpython-312.pyc,sha256=8e5c_y2EDXWnAcgEFzFLedL_xQXq8JVXtaXazFSUqKs,1419
72
- vbagent/models/__pycache__/review.cpython-312.pyc,sha256=uItiIcgC7S_5cFD-5h059dZ51J107knJxig17upTsbw,3830
73
- vbagent/models/__pycache__/scan.cpython-312.pyc,sha256=O3ngTylJbryOELB46IkVkpGWWJ0dqZqk0tka7BGmrn4,925
74
- vbagent/models/__pycache__/version_store.cpython-312.pyc,sha256=9NmMFz-MlYG_sgM36b_TCx1e-qvHbXDsP48t_yEkrPc,38070
75
- vbagent/models/batch.py,sha256=-39pKC0-6uWRiN33RRQmqSTUjglaPbAqN2KvztK4Cq8,13228
76
- vbagent/models/classification.py,sha256=8dxg4rJ3S_7njZ2CCbLMFlRdWINYcaOJDqKdDsWbHOs,1507
77
- vbagent/models/diff.py,sha256=otaF7RiQatdvCoowpyiBbCAzHJV1JxWYOoniRO2aIsM,13093
78
- vbagent/models/idea.py,sha256=c5GeWa3nqJA62hKcOdHjzMS4fZ2yQtbMn4yq4VC5EWs,678
79
- vbagent/models/pipeline.py,sha256=ul4LUpxoqehGiPeF4IE0IJk-4-Kn3o39-T2DtdpM3rs,872
80
- vbagent/models/review.py,sha256=gOsoIFMkKhAUNjT8btlPkWtDCtx7rWiY4xKSQOxNccQ,2615
81
- vbagent/models/scan.py,sha256=5-L5x0L7z7TL0i992nHlA5R7AtVihQw4sF14N2hjQ1w,470
82
- vbagent/models/version_store.py,sha256=HzISHfuQjl_7E61U826QuAhqd19li9xvG3xyiQhmJRE,32590
83
- vbagent/prompts/__init__.py,sha256=kFKSHBhhK5U0rzxsUuXXF3kyO1vOcxLGH0a7UaxQVRc,41
84
- vbagent/prompts/__pycache__/__init__.cpython-312.pyc,sha256=mdflU71JsPHDeUNhU19wYv2sVW6X9708cP5NnZciz-0,216
85
- vbagent/prompts/__pycache__/alternate.cpython-312.pyc,sha256=zrnAGvS1LctANpjMe8ZVx7I3FktFCPhhUmp6BnJHKDc,4209
86
- vbagent/prompts/__pycache__/clarity_checker.cpython-312.pyc,sha256=AaiRZOSN0wIfJdf1V6o4zj6Tcfzcf_DoCYYfL7f00CY,1840
87
- vbagent/prompts/__pycache__/classifier.cpython-312.pyc,sha256=P6X3NywMkVGVw_pBDqXmBfg4V3I0AuiAyeqvhhwCRVo,1496
88
- vbagent/prompts/__pycache__/converter.cpython-312.pyc,sha256=dCP7TsUfR9J02SCeO_7TIseyUz4H2j4bljt7n7KM3zE,5172
89
- vbagent/prompts/__pycache__/grammar_checker.cpython-312.pyc,sha256=Y3lXtg6ZiBMmu1CsrHEtkZF4MzZG2kh1CSPpxrH9Dwc,1769
90
- vbagent/prompts/__pycache__/idea.cpython-312.pyc,sha256=M8up8xE7Q9I4MMR5Xkqx4Qwr-Ca6vMiu-9So_M642Zs,5196
91
- vbagent/prompts/__pycache__/reviewer.cpython-312.pyc,sha256=60Phw9uQ4JwVegDKVCmLoh8RTNQkJO5-MfEv9KoILho,5282
92
- vbagent/prompts/__pycache__/solution_checker.cpython-312.pyc,sha256=lVzO47Qa7-tm6zHakKTvlptw1HPFwrmXZRSe3eJ0dnM,4119
93
- vbagent/prompts/__pycache__/tikz.cpython-312.pyc,sha256=wXV068lbYHKArmGD_ZAaaGdcKUj_yUJeyVMRUmB968M,17986
94
- vbagent/prompts/__pycache__/tikz_checker.cpython-312.pyc,sha256=Bi7KZvQb_TVEfLq_MnjJb7N7JkvXxKfZkfvwzipxHB4,7227
95
- vbagent/prompts/alternate.py,sha256=4CT_dbTt-weIsQmTgXUr3n2Ppmnvp55woxxl6ptUK48,4070
96
- vbagent/prompts/clarity_checker.py,sha256=YcP5CmIhjP6EeLM-NDEZ5sSExMjiamE9KPK_d25-4qg,1642
97
- vbagent/prompts/classifier.py,sha256=BAop4YDcP4VnHJKgppnXEOilVJ7CpoNru5HJA0jrWU0,1304
98
- vbagent/prompts/converter.py,sha256=TnFpEN_FkJhJwHRjx6okO0v675zX0aXSxPOsMliFlpo,4944
99
- vbagent/prompts/grammar_checker.py,sha256=AYqtscYZYPgQJ0_rVCtos8OwqYSwyFSdP48z5d2YxJ4,1571
100
- vbagent/prompts/idea.py,sha256=sYtCCBoqgwlei2WESaZyswn3AgShnHPHeQTUfDQxbIg,5151
101
- vbagent/prompts/reviewer.py,sha256=81xe5N-PZk1lML4ti_R7y1PNUW5_XG5DIzH_thSUAyQ,5046
102
- vbagent/prompts/scanner/__init__.py,sha256=7a3zOdrKEiqga5b00FBpGNOj-tYWyPQznYTW803P4jE,2207
103
- vbagent/prompts/scanner/__pycache__/__init__.cpython-312.pyc,sha256=nb6tmHaSt_DuHF30gbtMJF9q2sLRo8oRsi6uQVvu0Zs,1909
104
- vbagent/prompts/scanner/__pycache__/assertion_reason.cpython-312.pyc,sha256=veUBfKLOeqto-gb3-5o4oxGB3o7jHQTngTEF8LNcY7U,3665
105
- vbagent/prompts/scanner/__pycache__/common.cpython-312.pyc,sha256=9-cNh4iL1a_oGvOMIV4cb3QZG9fS1zujXvbL_OP8DMo,9094
106
- vbagent/prompts/scanner/__pycache__/match.cpython-312.pyc,sha256=hl9_Yy5GudoXPreHp_nYIdvoeGeTLW5WrTF5H53y_u8,3893
107
- vbagent/prompts/scanner/__pycache__/mcq_mc.cpython-312.pyc,sha256=3JZWw8pDaKOrO-dAAxRtB2rkTrV-q7fn7Avz7MwzSZ8,4138
108
- vbagent/prompts/scanner/__pycache__/mcq_sc.cpython-312.pyc,sha256=tCqhNXQ6UyqwaU10Htg6XZ2_YMFQlzzL8u9m9Z6N0Ik,3971
109
- vbagent/prompts/scanner/__pycache__/passage.cpython-312.pyc,sha256=FqxFyEAlDyQGVkUFda_-WDmpzD1eiZ6qnY3k49nx_vY,3386
110
- vbagent/prompts/scanner/__pycache__/subjective.cpython-312.pyc,sha256=HbStaUdH4V88tZdMwEbuJprOysnzoY4pRHfzCgknz9o,3205
111
- vbagent/prompts/scanner/assertion_reason.py,sha256=eBQ9pk-2a3BEAIlo6i7Mlk5Nv-KL2LUUlytfct8t89s,3467
112
- vbagent/prompts/scanner/common.py,sha256=vtMsPOJcWAZO1q3ZtPpSEqhtXry3_lpyv-hScVtz5oY,9396
113
- vbagent/prompts/scanner/match.py,sha256=vUUFZAX-KdOG5fEtS9KtpOr5IZJVS_9uHEXnx7_2aIU,3683
114
- vbagent/prompts/scanner/mcq_mc.py,sha256=_V4XNQb2DAbbsKwFL0DTdN7laP_YhBq0-Nm-b681QDo,3928
115
- vbagent/prompts/scanner/mcq_sc.py,sha256=UNXcGaJshAKCE7shfRup-wR44Zld-6N-cPV3wsiV9Jo,3744
116
- vbagent/prompts/scanner/passage.py,sha256=S-26mg6gC7mSHjk8PFH2c8vKg40VNlLfnFhdJ0H1pyE,3171
117
- vbagent/prompts/scanner/subjective.py,sha256=lgBHUzkMR9F37gI9oUnvjVpaDqe_9_TnO07awFEWT78,2992
118
- vbagent/prompts/solution_checker.py,sha256=L0H3GLNtNAGb36_FL8vkPwmhFSStfKVDilPOSpzQLU4,3919
119
- vbagent/prompts/tikz.py,sha256=PAGdye_dHFTf7FBX8O0MYNnb3r8OaxUgoD0E2TTtjgI,18102
120
- vbagent/prompts/tikz_checker.py,sha256=JIML1h4GOoLrAkwxTR26wBevYTxzm7v_yiSYHnujNZw,7730
121
- vbagent/prompts/variants/__init__.py,sha256=evniFs1M6qnarvU-tjaZie5vWqBNgEdgEprPmJSzRVQ,903
122
- vbagent/prompts/variants/__pycache__/__init__.cpython-312.pyc,sha256=cH5SJfFwmMMSYQDCA_rpCsfz09xJntbpbj5h9Ug1ogQ,975
123
- vbagent/prompts/variants/__pycache__/conceptual.cpython-312.pyc,sha256=GgmArEi9S4KFKXHLKaMthIUpEeps_wENThUjTCR8NNU,3113
124
- vbagent/prompts/variants/__pycache__/conceptual_calculus.cpython-312.pyc,sha256=bB64wiu7LMewnhwRKNj8zamHgTuU1zWlucx52ImPmWI,3437
125
- vbagent/prompts/variants/__pycache__/context.cpython-312.pyc,sha256=gEk2ztLhD97PSbrn8je6Dr8U4BSYWfmsNZth_uwUa7A,2901
126
- vbagent/prompts/variants/__pycache__/multi_context.cpython-312.pyc,sha256=0P9r15qeuOOQVxZYuS_qTZ_pp5VxLCYk4Mktm4vOgGA,3275
127
- vbagent/prompts/variants/__pycache__/numerical.cpython-312.pyc,sha256=zV3coTbtKZecM5eGlaIP90OFhc1ZIOuGFdU2S78AKU0,3021
128
- vbagent/prompts/variants/conceptual.py,sha256=JKgW8_i4n41FXAfHzieUceGgVO2HaGtdK9pc_iQSkKI,2919
129
- vbagent/prompts/variants/conceptual_calculus.py,sha256=XU49vqqINGKHxmPU-afkYz1VNZif8_iJEWmqC3JbBp4,3234
130
- vbagent/prompts/variants/context.py,sha256=rxTIOyqQzfDbLTZCfNuh0ChzfoS9lJhpO4R0wdPsZ8w,2710
131
- vbagent/prompts/variants/multi_context.py,sha256=HcYcadyJaVYUiEWOddCJSmENn6ggaQ2wP3VfUGnje4o,3078
132
- vbagent/prompts/variants/numerical.py,sha256=d0Y7MopbCTbJ7QIaiF17Z8gguud7rRFPx3oqatyHKz8,2828
133
- vbagent/references/__init__.py,sha256=BsJrB4Uf8Xbk0f6lgHh4RdSaI9G83bmcbUcE9lxPkw8,156
134
- vbagent/references/__pycache__/__init__.cpython-312.pyc,sha256=_iHjVS5uj11NFpweKLJYeF7iYPoV2NisvGH044fg8lw,350
135
- vbagent/references/__pycache__/context.cpython-312.pyc,sha256=fBCRQHVrigHdA8CcCXX8XCdMJVd7t_7t59K7e-q7I70,17371
136
- vbagent/references/__pycache__/store.cpython-312.pyc,sha256=fRB6HK19fGGLy706uB_eS59a87O0GqgbS46U9DDjB5I,12546
137
- vbagent/references/__pycache__/tikz_store.cpython-312.pyc,sha256=Tyo8QkC7jiRK6jy80aIv-2ft6PGJPchiAEVyCQBgQkY,22234
138
- vbagent/references/context.py,sha256=uUv3zALWHcP9C5jpVdj68lar7Mfoa7x8ICfoh5u2nH8,12652
139
- vbagent/references/store.py,sha256=caCFfw9cmtEI_b6TJeNRnmED9MLDiwpwDPouvtn2Ecc,10756
140
- vbagent/references/tikz_store.py,sha256=FQl_v_4pD8BvIbJEpI3dQF2IniF2IZKynk7bmNy-IDw,17473
141
- vbagent/templates/__init__.py,sha256=HhQO2KvTbxPfgyMzC7cTlY_vqSI46oWO6E2Ljz-mpgQ,152
142
- vbagent/templates/__pycache__/__init__.cpython-312.pyc,sha256=B7EEpsPm_HpmuAhV82htTayirXi5Pejce06yh3r7ugQ,335
143
- vbagent/templates/__pycache__/agentic_context.cpython-312.pyc,sha256=-g4rF9RX882Nmh6mkRiC_DBDpIPOlregkJREaf2YF4g,6540
144
- vbagent/templates/agentic_context.py,sha256=qB3ofjmmO2dFgq2RZeE7_0w6oXOVMImM1IMK91G-pfs,6246
145
- vbagent-0.1.0.dist-info/METADATA,sha256=I5qmKQWH7g7LxQ9LIHzOtKwpZWQUXTg5S4kMmzmqw2M,711
146
- vbagent-0.1.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
147
- vbagent-0.1.0.dist-info/entry_points.txt,sha256=94i1UBZsJ9uPiLHJW1CEk8Oh7zfWdp2aWZmWRGLCjAk,49
148
- vbagent-0.1.0.dist-info/RECORD,,