vibesurf 0.1.34__py3-none-any.whl → 0.1.36__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.

Potentially problematic release.


This version of vibesurf might be problematic. Click here for more details.

vibe_surf/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.1.34'
32
- __version_tuple__ = version_tuple = (0, 1, 34)
31
+ __version__ = version = '0.1.36'
32
+ __version_tuple__ = version_tuple = (0, 1, 36)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -393,6 +393,56 @@ async def get_composio_toolkits(
393
393
  db_toolkits = await ComposioToolkitQueries.list_toolkits(db, enabled_only=False)
394
394
  # Convert to response format
395
395
  toolkit_responses = []
396
+
397
+ if not db_toolkits and shared_state.composio_instance:
398
+ api_toolkits = await asyncio.to_thread(lambda: shared_state.composio_instance.toolkits.get())
399
+
400
+ oauth2_toolkits = []
401
+
402
+ for toolkit in api_toolkits:
403
+ if hasattr(toolkit, 'auth_schemes') and 'OAUTH2' in toolkit.auth_schemes:
404
+ oauth2_toolkits.append(toolkit)
405
+
406
+ logger.info(f"Found {len(oauth2_toolkits)} OAuth2 toolkits from Composio API")
407
+
408
+ # Sync with database
409
+ for api_toolkit in oauth2_toolkits:
410
+ # Check if toolkit already exists
411
+ existing_toolkit = await ComposioToolkitQueries.get_toolkit_by_slug(db, api_toolkit.slug)
412
+
413
+ # Get metadata from toolkit
414
+ description = getattr(api_toolkit.meta, 'description', None) if hasattr(api_toolkit,
415
+ 'meta') else None
416
+ logo = getattr(api_toolkit.meta, 'logo', None) if hasattr(api_toolkit, 'meta') else None
417
+ app_url = getattr(api_toolkit.meta, 'app_url', None) if hasattr(api_toolkit, 'meta') else None
418
+
419
+ if not existing_toolkit:
420
+ # Create new toolkit
421
+ toolkit_data = await ComposioToolkitQueries.create_toolkit(
422
+ db=db,
423
+ name=api_toolkit.name,
424
+ slug=api_toolkit.slug,
425
+ description=description,
426
+ logo=logo,
427
+ app_url=app_url,
428
+ enabled=False,
429
+ tools=None
430
+ )
431
+ logger.info(f"Created new toolkit: {api_toolkit.name}")
432
+ else:
433
+ # Update existing toolkit information (but keep enabled status and tools)
434
+ update_data = {
435
+ 'name': api_toolkit.name,
436
+ 'description': description,
437
+ 'logo': logo,
438
+ 'app_url': app_url
439
+ }
440
+ await ComposioToolkitQueries.update_toolkit_by_slug(db, api_toolkit.slug, update_data)
441
+ logger.debug(f"Updated existing toolkit: {api_toolkit.name}")
442
+
443
+ await db.commit()
444
+ db_toolkits = await ComposioToolkitQueries.list_toolkits(db, enabled_only=False)
445
+
396
446
  for toolkit in db_toolkits:
397
447
  # Parse tools JSON if present
398
448
  tools_data = None
vibe_surf/cli.py CHANGED
@@ -12,6 +12,7 @@ import socket
12
12
  import platform
13
13
  import time
14
14
  import importlib.util
15
+ import argparse
15
16
  from pathlib import Path
16
17
  from typing import Optional
17
18
  import os
@@ -289,6 +290,26 @@ def select_browser() -> Optional[str]:
289
290
  return None
290
291
 
291
292
 
293
+ def find_first_available_browser() -> Optional[str]:
294
+ """Find the first available browser in order: Chrome, Edge, Brave."""
295
+ # Try Chrome first
296
+ chrome_path = find_chrome_browser()
297
+ if chrome_path:
298
+ return chrome_path
299
+
300
+ # Try Edge second
301
+ edge_path = find_edge_browser()
302
+ if edge_path:
303
+ return edge_path
304
+
305
+ # Try Brave third
306
+ brave_path = find_brave_browser()
307
+ if brave_path:
308
+ return brave_path
309
+
310
+ return None
311
+
312
+
292
313
  def configure_port() -> int:
293
314
  """Configure backend port."""
294
315
  console.print("\n[bold cyan]🔌 Port Configuration[/bold cyan]")
@@ -417,6 +438,12 @@ def get_browser_execution_path() -> Optional[str]:
417
438
 
418
439
  def main():
419
440
  """Main CLI entry point."""
441
+ # Parse command line arguments
442
+ parser = argparse.ArgumentParser(description="VibeSurf CLI - Browser automation tool")
443
+ parser.add_argument('--no_select_browser', action='store_true',
444
+ help='Skip browser selection and use first available browser (Chrome -> Edge -> Brave)')
445
+ args = parser.parse_args()
446
+
420
447
  try:
421
448
  # Initialize telemetry
422
449
  telemetry = ProductTelemetry()
@@ -440,11 +467,30 @@ def main():
440
467
  # Check for existing browser path from configuration
441
468
  browser_path = get_browser_execution_path()
442
469
 
443
- # If no valid browser path found, ask user to select
470
+ # If no valid browser path found, handle based on --no_select_browser flag
444
471
  if not browser_path:
445
- browser_path = select_browser()
446
- if not browser_path:
447
- return
472
+ if args.no_select_browser:
473
+ # Find first available browser without user interaction
474
+ browser_path = find_first_available_browser()
475
+ if not browser_path:
476
+ console.print("[red]❌ No supported browsers found![/red]")
477
+ console.print("[yellow]Please download and install Chrome, Edge, or Brave browser.[/yellow]")
478
+ return
479
+ else:
480
+ # Determine which browser was found
481
+ browser_name = "Unknown"
482
+ if find_chrome_browser() == browser_path:
483
+ browser_name = "Chrome"
484
+ elif find_edge_browser() == browser_path:
485
+ browser_name = "Edge"
486
+ elif find_brave_browser() == browser_path:
487
+ browser_name = "Brave"
488
+ console.print(f"[green]✅ Auto-selected {browser_name}: {browser_path}[/green]")
489
+ else:
490
+ # Interactive browser selection (original behavior)
491
+ browser_path = select_browser()
492
+ if not browser_path:
493
+ return
448
494
 
449
495
  # Port configuration
450
496
  port = configure_port()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibesurf
3
- Version: 0.1.34
3
+ Version: 0.1.36
4
4
  Summary: VibeSurf: A powerful browser assistant for vibe surfing
5
5
  Author: WarmShao
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  vibe_surf/__init__.py,sha256=WtduuMFGauMD_9dpk4fnRnLTAP6ka9Lfu0feAFNzLfo,339
2
- vibe_surf/_version.py,sha256=qXkK0J46Y2KYnD6PPivyxzTkuIXax4LnIxIrp6Vtrp0,706
3
- vibe_surf/cli.py,sha256=o5Z-ren0-yr7CLamG6CSmUl5jhAGICuay0ssvaGnsuI,19759
2
+ vibe_surf/_version.py,sha256=Zr_3TB5mGPli-GtFv9z3u45eGpnqoHuoqAYM59f_8Yw,706
3
+ vibe_surf/cli.py,sha256=vLJNk0FKrqDgu1ZQLfIozzlAWzUtHjksWP3R2OdIQjk,21698
4
4
  vibe_surf/common.py,sha256=_WWMxen5wFwzUjEShn3yDVC1OBFUiJ6Vccadi6tuG6w,1215
5
5
  vibe_surf/logger.py,sha256=k53MFA96QX6t9OfcOf1Zws8PP0OOqjVJfhUD3Do9lKw,3043
6
6
  vibe_surf/utils.py,sha256=3j6uRkgjOAIDYmbpW8C-DpYhdf1Kvahz715KSriVIk0,261
@@ -21,7 +21,7 @@ vibe_surf/backend/api/__init__.py,sha256=XxF1jUOORpLYCfFuPrrnUGRnOrr6ClH0_MNPU-4
21
21
  vibe_surf/backend/api/activity.py,sha256=_cnHusqolt5Hf3KdAf6FK-3sBc-TSaadmb5dJxGI57A,9398
22
22
  vibe_surf/backend/api/agent.py,sha256=ISsG3FUIYoUCGcoQAfV3T6mtJSKHxC809p4bqjzjqlU,1199
23
23
  vibe_surf/backend/api/browser.py,sha256=NXedyZG3NIVRIx5O7d9mHwVWX-Q4_KsX5mSgfKt8UEA,2122
24
- vibe_surf/backend/api/composio.py,sha256=rQ_2ZPXRZOhbMhAKqJKLI-tEQt5LeUiBPYZffxKQYik,36264
24
+ vibe_surf/backend/api/composio.py,sha256=x_e3Lq6eP2NySRpmU3YIGH0hP8BjaN307SsCQ_QQmh4,38706
25
25
  vibe_surf/backend/api/config.py,sha256=vKY6ZnKZeazQP9qqUEiQvP9HoPtJbAzETORuPWZomGw,27272
26
26
  vibe_surf/backend/api/files.py,sha256=kJMG9MWECKXwGh64Q6xvAzNjeZGcLhIEnn65HiMZHKE,11762
27
27
  vibe_surf/backend/api/models.py,sha256=n_bu8vavvO8bIKA1WUAbaGPFeZKeamMJelDWU3DlFJc,10533
@@ -119,9 +119,9 @@ vibe_surf/tools/website_api/xhs/helpers.py,sha256=Dq2RyYKClBQ2ha2yEfpS1mtZswx0z9
119
119
  vibe_surf/tools/website_api/youtube/__init__.py,sha256=QWmZWSqo1O6XtaWP-SuL3HrBLYINjEWEyOy-KCytGDw,1145
120
120
  vibe_surf/tools/website_api/youtube/client.py,sha256=0kKy7fkBNc63hRvDgXaKnguDpDJ92rG8T2nT_Y1F5MQ,51989
121
121
  vibe_surf/tools/website_api/youtube/helpers.py,sha256=GPgqfNirLYjIpk1OObvoXd2Ktq-ahKOOKHO2WwQVXCw,12931
122
- vibesurf-0.1.34.dist-info/licenses/LICENSE,sha256=vRmTjOYvD8RLiSGYYmFHnveYNswtO1uvSk1sd-Eu7sg,2037
123
- vibesurf-0.1.34.dist-info/METADATA,sha256=Wb-RsgHAvkFEijfIKWxYVnsKLbLGVfM09ogZx739EPg,6387
124
- vibesurf-0.1.34.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
125
- vibesurf-0.1.34.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
126
- vibesurf-0.1.34.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
127
- vibesurf-0.1.34.dist-info/RECORD,,
122
+ vibesurf-0.1.36.dist-info/licenses/LICENSE,sha256=vRmTjOYvD8RLiSGYYmFHnveYNswtO1uvSk1sd-Eu7sg,2037
123
+ vibesurf-0.1.36.dist-info/METADATA,sha256=SKd0gEcgv6XXS9_QJP9SY90i8ooMOKANBwAhtJK-1Fo,6387
124
+ vibesurf-0.1.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
125
+ vibesurf-0.1.36.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
126
+ vibesurf-0.1.36.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
127
+ vibesurf-0.1.36.dist-info/RECORD,,