vibesurf 0.1.39__tar.gz → 0.1.41__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.
Potentially problematic release.
This version of vibesurf might be problematic. Click here for more details.
- {vibesurf-0.1.39 → vibesurf-0.1.41}/.gitignore +7 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/PKG-INFO +1 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/_version.py +3 -3
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/vibe_surf_agent.py +2 -9
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/agen_browser_profile.py +5 -5
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/agent_browser_session.py +11 -48
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/config.js +1 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/ui-manager.js +8 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/sidepanel.html +1 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/file_system.py +2 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/vibesurf_tools.py +6 -6
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/PKG-INFO +1 -1
- {vibesurf-0.1.39 → vibesurf-0.1.41}/.env.example +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/.github/workflows/publish.yml +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/.python-version +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/LICENSE +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/MANIFEST.in +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/README.md +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/README_zh.md +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/docs/EXECUTABLE_BUILD.md +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/docs/PYPI_SETUP.md +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/pyproject.toml +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/scripts/build-local.bat +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/scripts/build-local.sh +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/setup.cfg +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_agents.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_backend_api.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_browser.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_telemetry.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_tools.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/tests/test_voice_api.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/browser_use_agent.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/prompts/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/prompts/report_writer_prompt.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/prompts/vibe_surf_prompt.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/report_writer_agent.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/agents/views.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/activity.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/agent.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/browser.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/composio.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/config.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/files.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/models.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/task.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/api/voices.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/manager.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v001_initial_schema.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v002_add_agent_mode.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v003_fix_task_status_case.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v004_add_voice_profiles.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v005_add_composio_integration.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v006_add_credentials_table.sql +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/models.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/queries.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/schemas.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/llm_config.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/main.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/shared_state.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/utils/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/utils/encryption.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/utils/llm_factory.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/utils/utils.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/voice_model_config.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/browser_manager.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/utils.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/watchdogs/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/watchdogs/action_watchdog.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/browser/watchdogs/dom_watchdog.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/background.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/content.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/dev-reload.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/icons/logo.icns +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/icons/logo.png +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/manifest.json +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/permission-iframe.html +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/permission-request.html +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/popup.html +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/api-client.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/file-manager.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/history-manager.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/main.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/markdown-it.min.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/modal-manager.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/permission-iframe-request.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/permission-request.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/session-manager.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/settings-manager.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/user-settings-storage.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/voice-recorder.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/activity.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/animations.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/base.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/components.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/history-modal.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/input.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/layout.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/responsive.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-environment.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-forms.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-integrations.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-modal.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-profiles.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-responsive.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-utilities.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/variables.css +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/cli.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/common.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/llm/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/llm/openai_compatible.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/logger.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/telemetry/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/telemetry/service.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/telemetry/views.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/browser_use_tools.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/composio_client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/finance_tools.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/mcp_client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/report_writer_tools.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/utils.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/vibesurf_registry.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/views.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/voice_asr.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/douyin/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/douyin/client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/douyin/douyin.js +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/douyin/helpers.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/weibo/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/weibo/client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/weibo/helpers.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/xhs/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/xhs/client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/xhs/helpers.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/youtube/__init__.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/youtube/client.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/tools/website_api/youtube/helpers.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/utils.py +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/SOURCES.txt +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/dependency_links.txt +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/entry_points.txt +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/requires.txt +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.egg-info/top_level.txt +0 -0
- {vibesurf-0.1.39 → vibesurf-0.1.41}/vibesurf.spec +0 -0
|
@@ -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.41'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 41)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gcf9a2adad'
|
|
@@ -507,15 +507,8 @@ async def _vibesurf_agent_node_impl(state: VibeSurfState) -> VibeSurfState:
|
|
|
507
507
|
llm=vibesurf_agent.llm,
|
|
508
508
|
file_system=vibesurf_agent.file_system,
|
|
509
509
|
)
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
# Format final response
|
|
513
|
-
final_response = f"{result.extracted_content}" or f"{result.error}"
|
|
514
|
-
state.final_response = final_response
|
|
515
|
-
logger.debug(final_response)
|
|
516
|
-
state.is_complete = True
|
|
517
|
-
else:
|
|
518
|
-
state.current_step = "vibesurf_agent"
|
|
510
|
+
|
|
511
|
+
state.current_step = "vibesurf_agent"
|
|
519
512
|
|
|
520
513
|
if result.extracted_content:
|
|
521
514
|
vibesurf_agent.message_history.append(
|
|
@@ -45,11 +45,11 @@ class AgentBrowserProfile(BrowserProfile):
|
|
|
45
45
|
'id': 'edibdbjcniadpccecjdfdjjppcpchdlm',
|
|
46
46
|
'url': 'https://clients2.google.com/service/update2/crx?response=redirect&prodversion=130&acceptformat=crx3&x=id%3Dedibdbjcniadpccecjdfdjjppcpchdlm%26uc',
|
|
47
47
|
},
|
|
48
|
-
{
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
},
|
|
48
|
+
# {
|
|
49
|
+
# 'name': 'Force Background Tab',
|
|
50
|
+
# 'id': 'gidlfommnbibbmegmgajdbikelkdcmcl',
|
|
51
|
+
# 'url': 'https://clients2.google.com/service/update2/crx?response=redirect&prodversion=133&acceptformat=crx3&x=id%3Dgidlfommnbibbmegmgajdbikelkdcmcl%26uc',
|
|
52
|
+
# },
|
|
53
53
|
# {
|
|
54
54
|
# 'name': 'ClearURLs',
|
|
55
55
|
# 'id': 'lckanjgmijmafbedllaakclkaicjfmnk',
|
|
@@ -206,7 +206,7 @@ class AgentBrowserSession(BrowserSession):
|
|
|
206
206
|
assert self._cdp_client_root is not None
|
|
207
207
|
await self._cdp_client_root.start()
|
|
208
208
|
await self._cdp_client_root.send.Target.setAutoAttach(
|
|
209
|
-
params={'autoAttach':
|
|
209
|
+
params={'autoAttach': False, 'waitForDebuggerOnStart': False, 'flatten': True}
|
|
210
210
|
)
|
|
211
211
|
self.logger.debug('CDP client connected successfully')
|
|
212
212
|
|
|
@@ -228,39 +228,9 @@ class AgentBrowserSession(BrowserSession):
|
|
|
228
228
|
from browser_use.utils import is_new_tab_page
|
|
229
229
|
|
|
230
230
|
# Collect all targets that need redirection
|
|
231
|
-
redirected_targets = []
|
|
232
|
-
redirect_sessions = {} # Store sessions created for redirection to potentially reuse
|
|
233
|
-
for target in page_targets:
|
|
234
|
-
target_url = target.get('url', '')
|
|
235
|
-
if is_new_tab_page(target_url) and target_url != '':
|
|
236
|
-
# Redirect chrome://newtab to about:blank to avoid JS issues preventing driving chrome://newtab
|
|
237
|
-
target_id = target['targetId']
|
|
238
|
-
self.logger.debug(f'🔄 Redirecting {target_url} to about:blank for target {target_id}')
|
|
239
|
-
try:
|
|
240
|
-
# Create a CDP session for redirection (minimal domains to avoid duplicate event handlers)
|
|
241
|
-
# Only enable Page domain for navigation, avoid duplicate event handlers
|
|
242
|
-
redirect_session = await CDPSession.for_target(self._cdp_client_root, target_id,
|
|
243
|
-
domains=['Page'])
|
|
244
|
-
# Navigate to about:blank
|
|
245
|
-
await redirect_session.cdp_client.send.Page.navigate(
|
|
246
|
-
params={'url': ''}, session_id=redirect_session.session_id
|
|
247
|
-
)
|
|
248
|
-
redirected_targets.append(target_id)
|
|
249
|
-
redirect_sessions[target_id] = redirect_session # Store for potential reuse
|
|
250
|
-
# Update the target's URL in our list for later use
|
|
251
|
-
target['url'] = ''
|
|
252
|
-
# Small delay to ensure navigation completes
|
|
253
|
-
await asyncio.sleep(0.1)
|
|
254
|
-
except Exception as e:
|
|
255
|
-
self.logger.warning(f'Failed to redirect {target_url} to about:blank: {e}')
|
|
256
|
-
|
|
257
|
-
# Log summary of redirections
|
|
258
|
-
if redirected_targets:
|
|
259
|
-
self.logger.debug(f'Redirected {len(redirected_targets)} chrome://newtab pages to about:blank')
|
|
260
|
-
|
|
261
231
|
if not page_targets:
|
|
262
232
|
# No pages found, create a new one
|
|
263
|
-
new_target = await self._cdp_client_root.send.Target.createTarget(params={'url': ''})
|
|
233
|
+
new_target = await self._cdp_client_root.send.Target.createTarget(params={'url': 'chrome://newtab/'})
|
|
264
234
|
target_id = new_target['targetId']
|
|
265
235
|
self.logger.debug(f'📄 Created new blank page with target ID: {target_id}')
|
|
266
236
|
else:
|
|
@@ -268,14 +238,8 @@ class AgentBrowserSession(BrowserSession):
|
|
|
268
238
|
target_id = [page for page in page_targets if page.get('type') == 'page'][0]['targetId']
|
|
269
239
|
self.logger.debug(f'📄 Using existing page with target ID: {target_id}')
|
|
270
240
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
if target_id in redirect_sessions:
|
|
274
|
-
self.logger.debug(f'Reusing redirect session for target {target_id}')
|
|
275
|
-
self.agent_focus = redirect_sessions[target_id]
|
|
276
|
-
else:
|
|
277
|
-
# For the initial connection, we'll use the shared root WebSocket
|
|
278
|
-
self.agent_focus = await CDPSession.for_target(self._cdp_client_root, target_id, new_socket=False)
|
|
241
|
+
self.agent_focus = await CDPSession.for_target(self._cdp_client_root, target_id, new_socket=False)
|
|
242
|
+
|
|
279
243
|
if self.agent_focus:
|
|
280
244
|
self._cdp_session_pool[target_id] = self.agent_focus
|
|
281
245
|
|
|
@@ -297,13 +261,12 @@ class AgentBrowserSession(BrowserSession):
|
|
|
297
261
|
for idx, target in enumerate(page_targets):
|
|
298
262
|
target_url = target.get('url', '')
|
|
299
263
|
self.logger.debug(f'Dispatching TabCreatedEvent for initial tab {idx}: {target_url}')
|
|
300
|
-
|
|
264
|
+
self.event_bus.dispatch(TabCreatedEvent(url=target_url, target_id=target['targetId']))
|
|
301
265
|
|
|
302
266
|
# Dispatch initial focus event
|
|
303
267
|
if page_targets:
|
|
304
268
|
initial_url = page_targets[0].get('url', '')
|
|
305
|
-
|
|
306
|
-
AgentFocusChangedEvent(target_id=page_targets[0]['targetId'], url=initial_url))
|
|
269
|
+
self.event_bus.dispatch(AgentFocusChangedEvent(target_id=page_targets[0]['targetId'], url=initial_url))
|
|
307
270
|
self.logger.debug(f'Initial agent focus set to tab 0: {initial_url}')
|
|
308
271
|
|
|
309
272
|
except Exception as e:
|
|
@@ -329,8 +292,8 @@ class AgentBrowserSession(BrowserSession):
|
|
|
329
292
|
self.logger.info(f"Agent {self.id}: Assigned target {target_id}")
|
|
330
293
|
self.agent_focus = await CDPSession.for_target(self._cdp_client_root, target_id, new_socket=True,
|
|
331
294
|
cdp_url=self.cdp_url)
|
|
332
|
-
await self.agent_focus.cdp_client.send.Target.activateTarget(
|
|
333
|
-
|
|
295
|
+
# await self.agent_focus.cdp_client.send.Target.activateTarget(
|
|
296
|
+
# params={'targetId': target_id})
|
|
334
297
|
await self.agent_focus.cdp_client.send.Runtime.runIfWaitingForDebugger(
|
|
335
298
|
session_id=self.agent_focus.session_id)
|
|
336
299
|
self._cdp_session_pool[target_id] = self.agent_focus
|
|
@@ -524,7 +487,7 @@ class AgentBrowserSession(BrowserSession):
|
|
|
524
487
|
self.agent_focus = session
|
|
525
488
|
|
|
526
489
|
# Activate target without events
|
|
527
|
-
await session.cdp_client.send.Target.activateTarget(params={'targetId': target_id})
|
|
490
|
+
# await session.cdp_client.send.Target.activateTarget(params={'targetId': target_id})
|
|
528
491
|
await session.cdp_client.send.Runtime.runIfWaitingForDebugger(session_id=session.session_id)
|
|
529
492
|
else:
|
|
530
493
|
# Use current tab - no tab switching events
|
|
@@ -747,7 +710,7 @@ class AgentBrowserSession(BrowserSession):
|
|
|
747
710
|
)
|
|
748
711
|
self.agent_focus = session
|
|
749
712
|
if focus:
|
|
750
|
-
await session.cdp_client.send.Target.activateTarget(params={'targetId': session.target_id})
|
|
713
|
+
# await session.cdp_client.send.Target.activateTarget(params={'targetId': session.target_id})
|
|
751
714
|
await session.cdp_client.send.Runtime.runIfWaitingForDebugger(session_id=session.session_id)
|
|
752
715
|
# else:
|
|
753
716
|
# self.logger.debug(f'[get_or_create_cdp_session] Reusing existing session for {target_id} (focus={focus})')
|
|
@@ -780,7 +743,7 @@ class AgentBrowserSession(BrowserSession):
|
|
|
780
743
|
f'[get_or_create_cdp_session] Switching agent focus from {self.agent_focus.target_id} to {target_id}'
|
|
781
744
|
)
|
|
782
745
|
self.agent_focus = session
|
|
783
|
-
await session.cdp_client.send.Target.activateTarget(params={'targetId': session.target_id})
|
|
746
|
+
# await session.cdp_client.send.Target.activateTarget(params={'targetId': session.target_id})
|
|
784
747
|
await session.cdp_client.send.Runtime.runIfWaitingForDebugger(session_id=session.session_id)
|
|
785
748
|
else:
|
|
786
749
|
self.logger.debug(
|
|
@@ -33,6 +33,7 @@ const VIBESURF_CONFIG = {
|
|
|
33
33
|
github: "https://github.com/vibesurf-ai/VibeSurf",
|
|
34
34
|
discord: "https://discord.gg/EZ2YnUXP",
|
|
35
35
|
x: "https://x.com/warmshao",
|
|
36
|
+
reportBug: "https://github.com/vibesurf-ai/VibeSurf/issues/new/choose",
|
|
36
37
|
website: "https://vibe-surf.com/"
|
|
37
38
|
},
|
|
38
39
|
|
|
@@ -1475,7 +1475,7 @@ class VibeSurfUIManager {
|
|
|
1475
1475
|
<div class="task-icon">🔍</div>
|
|
1476
1476
|
<div class="task-content">
|
|
1477
1477
|
<div class="task-title">Research Founders</div>
|
|
1478
|
-
<div class="task-description">Search information about browser
|
|
1478
|
+
<div class="task-description">Search information about AI browser assistant: VibeSurf, write a brief report</div>
|
|
1479
1479
|
</div>
|
|
1480
1480
|
</div>
|
|
1481
1481
|
<div class="task-suggestion" data-task="news">
|
|
@@ -3603,6 +3603,13 @@ class VibeSurfUIManager {
|
|
|
3603
3603
|
break;
|
|
3604
3604
|
|
|
3605
3605
|
|
|
3606
|
+
case 'reportbug':
|
|
3607
|
+
title = 'Report Bug';
|
|
3608
|
+
svg = `<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3609
|
+
<path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.42.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z" fill="currentColor"/>
|
|
3610
|
+
</svg>`;
|
|
3611
|
+
break;
|
|
3612
|
+
|
|
3606
3613
|
default:
|
|
3607
3614
|
console.warn(`[UIManager] Unknown social platform: ${platform}`);
|
|
3608
3615
|
return null;
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
<div class="task-icon">🔍</div>
|
|
89
89
|
<div class="task-content">
|
|
90
90
|
<div class="task-title">Research Founders</div>
|
|
91
|
-
<div class="task-description">Search information about browser
|
|
91
|
+
<div class="task-description">Search information about AI browser assistant: VibeSurf, write a brief report</div>
|
|
92
92
|
</div>
|
|
93
93
|
</div>
|
|
94
94
|
<div class="task-suggestion" data-task="news">
|
|
@@ -65,7 +65,8 @@ class CustomFileSystem(FileSystem):
|
|
|
65
65
|
|
|
66
66
|
async def display_file(self, full_filename: str) -> str | None:
|
|
67
67
|
"""Display file content using file-specific display method"""
|
|
68
|
-
|
|
68
|
+
if_file_exist = await self.file_exist(full_filename)
|
|
69
|
+
if not if_file_exist:
|
|
69
70
|
return f"{full_filename} does not exist."
|
|
70
71
|
|
|
71
72
|
file_content = await self.read_file(full_filename)
|
|
@@ -281,10 +281,10 @@ Format: [index1, index2, index3, ...]
|
|
|
281
281
|
if params.tab_id:
|
|
282
282
|
target_id = await browser_session.get_target_id_from_tab_id(params.tab_id)
|
|
283
283
|
current_target_id = None
|
|
284
|
-
if browser_session.
|
|
285
|
-
current_target_id = browser_session.
|
|
284
|
+
if browser_session._dom_watchdog and browser_session._dom_watchdog.enhanced_dom_tree:
|
|
285
|
+
current_target_id = browser_session._dom_watchdog.enhanced_dom_tree.target_id
|
|
286
286
|
if current_target_id != target_id:
|
|
287
|
-
browser_session._dom_watchdog.
|
|
287
|
+
browser_session._dom_watchdog.clear_cache()
|
|
288
288
|
await browser_session.get_or_create_cdp_session(target_id, focus=True)
|
|
289
289
|
|
|
290
290
|
# Extract structured content using the existing method
|
|
@@ -340,10 +340,10 @@ Format: [index1, index2, index3, ...]
|
|
|
340
340
|
if params.tab_id:
|
|
341
341
|
target_id = await browser_session.get_target_id_from_tab_id(params.tab_id)
|
|
342
342
|
current_target_id = None
|
|
343
|
-
if browser_session.
|
|
344
|
-
current_target_id = browser_session.
|
|
343
|
+
if browser_session._dom_watchdog and browser_session._dom_watchdog.enhanced_dom_tree:
|
|
344
|
+
current_target_id = browser_session._dom_watchdog.enhanced_dom_tree.target_id
|
|
345
345
|
if current_target_id != target_id:
|
|
346
|
-
browser_session._dom_watchdog.
|
|
346
|
+
browser_session._dom_watchdog.clear_cache()
|
|
347
347
|
await browser_session.get_or_create_cdp_session(target_id, focus=True)
|
|
348
348
|
|
|
349
349
|
# Extract and summarize content
|
|
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
|
|
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
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v001_initial_schema.sql
RENAMED
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/backend/database/migrations/v002_add_agent_mode.sql
RENAMED
|
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
|
|
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
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/permission-iframe-request.js
RENAMED
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/permission-request.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/scripts/user-settings-storage.js
RENAMED
|
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
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-environment.css
RENAMED
|
File without changes
|
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-integrations.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-responsive.css
RENAMED
|
File without changes
|
{vibesurf-0.1.39 → vibesurf-0.1.41}/vibe_surf/chrome_extension/styles/settings-utilities.css
RENAMED
|
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
|
|
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
|