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 +2 -2
- vibe_surf/backend/api/composio.py +50 -0
- vibe_surf/cli.py +50 -4
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/METADATA +1 -1
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/RECORD +9 -9
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/WHEEL +0 -0
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/entry_points.txt +0 -0
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/licenses/LICENSE +0 -0
- {vibesurf-0.1.34.dist-info → vibesurf-0.1.36.dist-info}/top_level.txt +0 -0
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.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
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,
|
|
470
|
+
# If no valid browser path found, handle based on --no_select_browser flag
|
|
444
471
|
if not browser_path:
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
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
|
vibe_surf/__init__.py,sha256=WtduuMFGauMD_9dpk4fnRnLTAP6ka9Lfu0feAFNzLfo,339
|
|
2
|
-
vibe_surf/_version.py,sha256=
|
|
3
|
-
vibe_surf/cli.py,sha256=
|
|
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=
|
|
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.
|
|
123
|
-
vibesurf-0.1.
|
|
124
|
-
vibesurf-0.1.
|
|
125
|
-
vibesurf-0.1.
|
|
126
|
-
vibesurf-0.1.
|
|
127
|
-
vibesurf-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|