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

Files changed (34) hide show
  1. vibe_surf/_version.py +2 -2
  2. vibe_surf/agents/browser_use_agent.py +1 -1
  3. vibe_surf/agents/prompts/vibe_surf_prompt.py +6 -0
  4. vibe_surf/agents/report_writer_agent.py +50 -0
  5. vibe_surf/agents/vibe_surf_agent.py +55 -0
  6. vibe_surf/backend/api/composio.py +952 -0
  7. vibe_surf/backend/database/migrations/v005_add_composio_integration.sql +33 -0
  8. vibe_surf/backend/database/migrations/v006_add_credentials_table.sql +26 -0
  9. vibe_surf/backend/database/models.py +53 -1
  10. vibe_surf/backend/database/queries.py +312 -2
  11. vibe_surf/backend/main.py +28 -0
  12. vibe_surf/backend/shared_state.py +123 -9
  13. vibe_surf/chrome_extension/scripts/api-client.js +32 -0
  14. vibe_surf/chrome_extension/scripts/settings-manager.js +954 -1
  15. vibe_surf/chrome_extension/sidepanel.html +190 -0
  16. vibe_surf/chrome_extension/styles/settings-integrations.css +927 -0
  17. vibe_surf/chrome_extension/styles/settings-modal.css +7 -3
  18. vibe_surf/chrome_extension/styles/settings-responsive.css +37 -5
  19. vibe_surf/cli.py +98 -3
  20. vibe_surf/telemetry/__init__.py +60 -0
  21. vibe_surf/telemetry/service.py +112 -0
  22. vibe_surf/telemetry/views.py +156 -0
  23. vibe_surf/tools/composio_client.py +456 -0
  24. vibe_surf/tools/mcp_client.py +21 -2
  25. vibe_surf/tools/vibesurf_tools.py +290 -87
  26. vibe_surf/tools/views.py +16 -0
  27. vibe_surf/tools/website_api/youtube/client.py +35 -13
  28. vibe_surf/utils.py +13 -0
  29. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/METADATA +11 -9
  30. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/RECORD +34 -25
  31. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/WHEEL +0 -0
  32. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/entry_points.txt +0 -0
  33. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/licenses/LICENSE +0 -0
  34. {vibesurf-0.1.32.dist-info → vibesurf-0.1.34.dist-info}/top_level.txt +0 -0
vibe_surf/tools/views.py CHANGED
@@ -287,3 +287,19 @@ class SkillYoutubeAction(BaseModel):
287
287
  params: str = Field(
288
288
  description='JSON string of method parameters, provide corresponding parameters according to the method parameter. Example: {"query": "tech tutorial", "max_results": 30}'
289
289
  )
290
+
291
+
292
+ class GrepContentAction(BaseModel):
293
+ """Parameters for grep content from file action"""
294
+ file_path: str = Field(
295
+ description='Path to the file to search content from',
296
+ )
297
+ query: str = Field(
298
+ description='Search query or keywords to grep for',
299
+ )
300
+ context_chars: int = Field(
301
+ default=100,
302
+ description='Number of characters to include before and after each match (default: 100)',
303
+ ge=10,
304
+ le=1000,
305
+ )
@@ -947,6 +947,26 @@ class YouTubeApiClient:
947
947
  logger.error(f"Failed to extract comment info: {e}")
948
948
  return None
949
949
 
950
+ def _build_channel_url(self, channel_id: str) -> str:
951
+ clean_id = channel_id.strip()
952
+
953
+ if clean_id.startswith('@'):
954
+ return f"https://www.youtube.com/{clean_id}"
955
+
956
+ if re.match(r'^UC[a-zA-Z0-9_-]{22}$', clean_id):
957
+ return f"https://www.youtube.com/channel/{clean_id}"
958
+
959
+ if re.match(r'^[a-zA-Z0-9_-]{24}$', clean_id):
960
+ return f"https://www.youtube.com/channel/{clean_id}"
961
+
962
+ if re.match(r'^[a-zA-Z0-9_-]+$', clean_id):
963
+ return f"https://www.youtube.com/@{clean_id}"
964
+
965
+ if '/' in clean_id:
966
+ return f"https://www.youtube.com/{clean_id}"
967
+
968
+ return f"https://www.youtube.com/@{clean_id}"
969
+
950
970
  async def get_channel_info(self, channel_id: str) -> Optional[Dict]:
951
971
  """
952
972
  Get YouTube channel information
@@ -959,7 +979,8 @@ class YouTubeApiClient:
959
979
  """
960
980
  try:
961
981
  # Navigate to channel page to get information
962
- channel_url = f"https://www.youtube.com/@{channel_id}"
982
+ channel_url = self._build_channel_url(channel_id)
983
+
963
984
  response = await self._make_request(
964
985
  "GET", channel_url, headers=self.default_headers, raw_response=True
965
986
  )
@@ -1171,7 +1192,8 @@ class YouTubeApiClient:
1171
1192
  logger.error(f"Failed to get trending videos: {e}")
1172
1193
  return []
1173
1194
 
1174
- async def get_video_transcript(self, video_id: str, languages: Optional[List[str]] = None) -> Optional[Dict[str, List[Dict]]]:
1195
+ async def get_video_transcript(self, video_id: str, languages: Optional[List[str]] = None) -> Optional[
1196
+ Dict[str, List[Dict]]]:
1175
1197
  """
1176
1198
  Get transcript for a YouTube video
1177
1199
 
@@ -1186,23 +1208,23 @@ class YouTubeApiClient:
1186
1208
  try:
1187
1209
  if languages is None:
1188
1210
  languages = ['en']
1189
-
1211
+
1190
1212
  # Create YouTubeTranscriptApi instance
1191
1213
  ytt_api = YouTubeTranscriptApi()
1192
-
1214
+
1193
1215
  # List available transcripts to check what's available
1194
1216
  transcript_list = ytt_api.list(video_id)
1195
1217
  available_languages = [transcript.language_code for transcript in transcript_list]
1196
-
1218
+
1197
1219
  logger.info(f"Available transcript languages for video {video_id}: {available_languages}")
1198
-
1220
+
1199
1221
  # Filter requested languages to only include available ones
1200
1222
  valid_languages = [lang for lang in languages if lang in available_languages]
1201
-
1223
+
1202
1224
  if not valid_languages:
1203
1225
  logger.warning(f"None of the requested languages {languages} are available for video {video_id}")
1204
1226
  return None
1205
-
1227
+
1206
1228
  # Fetch transcripts for each valid language
1207
1229
  result = {}
1208
1230
  for language in valid_languages:
@@ -1210,19 +1232,19 @@ class YouTubeApiClient:
1210
1232
  # Find transcript for this specific language
1211
1233
  transcript = transcript_list.find_transcript([language])
1212
1234
  fetched_transcript = transcript.fetch()
1213
-
1235
+
1214
1236
  # Convert to raw data format
1215
1237
  raw_data = fetched_transcript.to_raw_data()
1216
1238
  result[language] = raw_data
1217
-
1239
+
1218
1240
  logger.info(f"Successfully fetched transcript for video {video_id} in language {language}")
1219
-
1241
+
1220
1242
  except Exception as lang_error:
1221
1243
  logger.warning(f"Failed to fetch transcript for language {language}: {lang_error}")
1222
1244
  continue
1223
-
1245
+
1224
1246
  return result if result else None
1225
-
1247
+
1226
1248
  except Exception as e:
1227
1249
  logger.error(f"Failed to get transcript for video {video_id}: {e}")
1228
1250
  return None
vibe_surf/utils.py ADDED
@@ -0,0 +1,13 @@
1
+ def singleton(cls):
2
+ instance = [None]
3
+
4
+ def wrapper(*args, **kwargs):
5
+ if instance[0] is None:
6
+ instance[0] = cls(*args, **kwargs)
7
+ return instance[0]
8
+
9
+ return wrapper
10
+
11
+ def get_vibesurf_version() -> str:
12
+ import vibe_surf
13
+ return str(vibe_surf.__version__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibesurf
3
- Version: 0.1.32
3
+ Version: 0.1.34
4
4
  Summary: VibeSurf: A powerful browser assistant for vibe surfing
5
5
  Author: WarmShao
6
6
  License: Apache-2.0
@@ -46,10 +46,12 @@ Requires-Dist: dashscope>=1.24.5
46
46
  Requires-Dist: yfinance>=0.2.66
47
47
  Requires-Dist: pyexecjs>=1.5.1
48
48
  Requires-Dist: youtube-transcript-api>=1.2.2
49
+ Requires-Dist: composio>=0.8.20
50
+ Requires-Dist: composio-langchain>=0.8.20
49
51
  Dynamic: license-file
50
52
 
51
53
  # VibeSurf: A powerful browser assistant for vibe surfing
52
- [![Discord](https://img.shields.io/discord/1303749220842340412?color=7289DA&label=Discord&logo=discord&logoColor=white)](https://discord.gg/EZ2YnUXP)
54
+ [![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/EZ2YnUXP)
53
55
  [![WarmShao](https://img.shields.io/twitter/follow/warmshao?style=social)](https://x.com/warmshao)
54
56
 
55
57
  VibeSurf is an open-source AI agentic browser that revolutionizes browser automation and research.
@@ -141,16 +143,16 @@ uv run vibesurf
141
143
  We're building VibeSurf to be your ultimate AI browser companion. Here's what's coming next:
142
144
 
143
145
  - [x] **Smart Skills System** - *Completed*
144
- Add `/search` for quick information search and `/crawl` for automatic website data extraction. Integrated native APIs for Xiaohongshu, Douyin, Weibo, and YouTube.
146
+ Add `/search` for quick information search, `/crawl` for automatic website data extraction and `/code` for webpage js code execution. Integrated native APIs for Xiaohongshu, Douyin, Weibo, and YouTube.
145
147
 
146
- - [ ] **Powerful Coding Agent** - *In Progress*
147
- Build a comprehensive coding assistant for data processing and analysis directly in your browser
148
+ - [x] **Third-Party Integrations** - *Completed*
149
+ Connect with hundreds of popular tools including Gmail, Notion, Google Calendar, Slack, Trello, GitHub, and more through Composio integration to combine browsing with powerful automation capabilities
148
150
 
149
- - [ ] **Agentic Browser Workflow** - *Planned*
150
- Create custom drag-and-drop workflows for auto-login, data collection, and complex browser automation tasks
151
+ - [ ] **Agentic Browser Workflow** - *In Progress*
152
+ Create custom drag-and-drop and conversation-based workflows for auto-login, data collection, and complex browser automation tasks
151
153
 
152
- - [ ] **Third-Party Integrations** - *Planned*
153
- Connect with n8n workflows and other tools to combine browsing with automation
154
+ - [ ] **Powerful Coding Agent** - *In Progress*
155
+ Build a comprehensive coding assistant for data processing and analysis directly in your browser
154
156
 
155
157
  - [ ] **Intelligent Memory & Personalization** - *Planned*
156
158
  Transform VibeSurf into a truly human-like companion with persistent memory that learns your preferences, habits, and browsing patterns over time
@@ -1,25 +1,27 @@
1
1
  vibe_surf/__init__.py,sha256=WtduuMFGauMD_9dpk4fnRnLTAP6ka9Lfu0feAFNzLfo,339
2
- vibe_surf/_version.py,sha256=bOrloXQ1niy48uSx3m2DBfma1avGekphNS__F9F-ybA,706
3
- vibe_surf/cli.py,sha256=tTPkQqkW_jW154C9U2C2qgQtqblaskmsWFBlqPd-LMc,16598
2
+ vibe_surf/_version.py,sha256=qXkK0J46Y2KYnD6PPivyxzTkuIXax4LnIxIrp6Vtrp0,706
3
+ vibe_surf/cli.py,sha256=o5Z-ren0-yr7CLamG6CSmUl5jhAGICuay0ssvaGnsuI,19759
4
4
  vibe_surf/common.py,sha256=_WWMxen5wFwzUjEShn3yDVC1OBFUiJ6Vccadi6tuG6w,1215
5
5
  vibe_surf/logger.py,sha256=k53MFA96QX6t9OfcOf1Zws8PP0OOqjVJfhUD3Do9lKw,3043
6
+ vibe_surf/utils.py,sha256=3j6uRkgjOAIDYmbpW8C-DpYhdf1Kvahz715KSriVIk0,261
6
7
  vibe_surf/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- vibe_surf/agents/browser_use_agent.py,sha256=jeUYV7yk6vyycw6liju_597GdjB3CW_B2wEhn2F0ekk,45957
8
- vibe_surf/agents/report_writer_agent.py,sha256=pCF2k6VLyO-sSviGBqqIyVD3SLqaZtSqiW3kvNfPY1I,20967
9
- vibe_surf/agents/vibe_surf_agent.py,sha256=z0lyF9FvO25cJDOZik2s_NgJ9bwtMYZagaklN8yID1g,74271
8
+ vibe_surf/agents/browser_use_agent.py,sha256=c4Sy8HgSnuxbOSAK4VL55UNBiE1K1eH_Ko4L3AUPA08,45955
9
+ vibe_surf/agents/report_writer_agent.py,sha256=oPub78ICAHLghUzRcRCDcwKD_yB_LYAj_ede4wJyO2s,23006
10
+ vibe_surf/agents/vibe_surf_agent.py,sha256=7YOjNHb52LYoYjBfUFvkh6u_SpZEWbs-3E-gLYS91pY,76480
10
11
  vibe_surf/agents/views.py,sha256=yHjNJloa-aofVTGyuRy08tBYP_Y3XLqt1DUWOUmHRng,4825
11
12
  vibe_surf/agents/prompts/__init__.py,sha256=l4ieA0D8kLJthyNN85FKLNe4ExBa3stY3l-aImLDRD0,36
12
13
  vibe_surf/agents/prompts/report_writer_prompt.py,sha256=sZE8MUT1CDLmRzbnbEQzAvTwJjpITgh2Q8g1_eXmkzE,4454
13
- vibe_surf/agents/prompts/vibe_surf_prompt.py,sha256=hubN49_aD5LpkDGa0Z2AxGmUL04M7cigyDegDd-n8iE,6907
14
+ vibe_surf/agents/prompts/vibe_surf_prompt.py,sha256=UnZxgy9sgr4u1RNYr6VJBk3sEUbFasu2z75QGsILXk8,7507
14
15
  vibe_surf/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
16
  vibe_surf/backend/llm_config.py,sha256=9V8Gg065TQALbOKQnOqFWd8RzOJjegOD8w6YOf90Q7Y,5036
16
- vibe_surf/backend/main.py,sha256=K57Bk7JtG1xTu2zmMZwPd5oUuReHDHzrRzsarcggCwg,7402
17
- vibe_surf/backend/shared_state.py,sha256=o-6QJjIC-x34A6nRS2c2uO16yZ7osPXZSxVb86OeA4A,23662
17
+ vibe_surf/backend/main.py,sha256=8_n9dUF972E_UqguXK4zfq5AeulTUeey4X60qOXnigY,8272
18
+ vibe_surf/backend/shared_state.py,sha256=4ZFG9JtjMWnUYefst8klJbIy-udMfNXClWJsg_fYlq0,28666
18
19
  vibe_surf/backend/voice_model_config.py,sha256=oee4fvOexXKzKRDv2-FEKQj7Z2OznACrj6mfWRGy7h0,567
19
20
  vibe_surf/backend/api/__init__.py,sha256=XxF1jUOORpLYCfFuPrrnUGRnOrr6ClH0_MNPU-4RnSs,68
20
21
  vibe_surf/backend/api/activity.py,sha256=_cnHusqolt5Hf3KdAf6FK-3sBc-TSaadmb5dJxGI57A,9398
21
22
  vibe_surf/backend/api/agent.py,sha256=ISsG3FUIYoUCGcoQAfV3T6mtJSKHxC809p4bqjzjqlU,1199
22
23
  vibe_surf/backend/api/browser.py,sha256=NXedyZG3NIVRIx5O7d9mHwVWX-Q4_KsX5mSgfKt8UEA,2122
24
+ vibe_surf/backend/api/composio.py,sha256=rQ_2ZPXRZOhbMhAKqJKLI-tEQt5LeUiBPYZffxKQYik,36264
23
25
  vibe_surf/backend/api/config.py,sha256=vKY6ZnKZeazQP9qqUEiQvP9HoPtJbAzETORuPWZomGw,27272
24
26
  vibe_surf/backend/api/files.py,sha256=kJMG9MWECKXwGh64Q6xvAzNjeZGcLhIEnn65HiMZHKE,11762
25
27
  vibe_surf/backend/api/models.py,sha256=n_bu8vavvO8bIKA1WUAbaGPFeZKeamMJelDWU3DlFJc,10533
@@ -27,13 +29,15 @@ vibe_surf/backend/api/task.py,sha256=CYx8FNN04XM8cH9BjAuMb-E7GUTxi4pl0OsT_1KnDBQ
27
29
  vibe_surf/backend/api/voices.py,sha256=YfPCqnR7EAYh2nfMRIpB0xEo6_giTtxrcSeobU3HQHg,17098
28
30
  vibe_surf/backend/database/__init__.py,sha256=XhmcscnhgMhUyXML7m4SnuQIqkFpyY_zJ0D3yYa2RqQ,239
29
31
  vibe_surf/backend/database/manager.py,sha256=Okmr6yG2aycmatONRMyRbHe6l53RkFIPeMxxPSD3ycY,11884
30
- vibe_surf/backend/database/models.py,sha256=Z5_RqGyD4ER5bsrYjc2iso9yPo7zfAqxNeVDGtZqotw,8887
31
- vibe_surf/backend/database/queries.py,sha256=6SsAxTr-ocQ189xQ5m0L3BsgUdkGtmt2TcrXP-JIbrw,41157
32
+ vibe_surf/backend/database/models.py,sha256=dvnw1TBRybCupliRqBhlmdEQEJqrMcO62rf1FLTEoyU,10942
33
+ vibe_surf/backend/database/queries.py,sha256=8PlYXmvlP5RqDgpzVYETposyUX4C8j72l3U2nbQqi7I,52106
32
34
  vibe_surf/backend/database/schemas.py,sha256=OPnpRKwYG1Cu8geJ6pajiEDF8x8mRestXnAfI4Gy18w,3402
33
35
  vibe_surf/backend/database/migrations/v001_initial_schema.sql,sha256=MC2fa1WHUEhHhdOTxz0qB4RI7JdGRpiGXZ77ytl3LRQ,4345
34
36
  vibe_surf/backend/database/migrations/v002_add_agent_mode.sql,sha256=jKnW28HsphUeU9kudEx9QaLnUh8swmmOt-hFsZJay24,251
35
37
  vibe_surf/backend/database/migrations/v003_fix_task_status_case.sql,sha256=npzRgEnKymTzvb-nOZHtycjVyWX2Dx0tCEtrZJfcujg,580
36
38
  vibe_surf/backend/database/migrations/v004_add_voice_profiles.sql,sha256=-9arjQBF-OxvFIOwkEl7JJJRDTS_nJ8GNX3T7bJgVq0,1321
39
+ vibe_surf/backend/database/migrations/v005_add_composio_integration.sql,sha256=QuTrRYyOmHdepRcHHwrGlLpsNq9qo5mnOB5LfXtN-CU,1172
40
+ vibe_surf/backend/database/migrations/v006_add_credentials_table.sql,sha256=udyVO_L8CvdBKGNfmnxj-kU7UxR9EzUqMpHuV1h46vU,812
37
41
  vibe_surf/backend/utils/__init__.py,sha256=V8leMFp7apAglUAoCHPZrNNcRHthSLYIudIJE5qwjb0,184
38
42
  vibe_surf/backend/utils/encryption.py,sha256=CjLNh_n0Luhfa-6BB-icfzkiiDqj5b4Gu6MADU3p2eM,3754
39
43
  vibe_surf/backend/utils/llm_factory.py,sha256=XIJYc9Lh_L2vbwlAe96PrjptlzJtLOjCGNdHEx6fThk,9047
@@ -54,10 +58,10 @@ vibe_surf/chrome_extension/manifest.json,sha256=B08nHuU-bPc-pUr30Y-of39TjMlrE7D5
54
58
  vibe_surf/chrome_extension/permission-iframe.html,sha256=R6VM1JfrzkfXTTD5mGCKui1dDWTqHEe9n8TtVdZNPNg,948
55
59
  vibe_surf/chrome_extension/permission-request.html,sha256=ct1LTl_9euABiHcqNU6AFcvpCAfANWO0y_dDEAjtwfE,2905
56
60
  vibe_surf/chrome_extension/popup.html,sha256=n3dI_-WbILm0q8O_za6xX0WvOofz5lwT_7YXs0u9RAE,4248
57
- vibe_surf/chrome_extension/sidepanel.html,sha256=-afyeqX5BzYlp489svh22sazSyG2bgD85QHHbNeWYeY,36549
61
+ vibe_surf/chrome_extension/sidepanel.html,sha256=TUTdct8EfzqgBZ4lFTRo1oh-SRNatjcLXWBClABW3Ls,47819
58
62
  vibe_surf/chrome_extension/icons/logo.icns,sha256=ZzY1eIKF4dNhNW4CeE1UBQloxNVC7bQx3qcClo3CnMQ,1569615
59
63
  vibe_surf/chrome_extension/icons/logo.png,sha256=PLmv1E6sCGXUE5ZDxr-pFPQd9Gvaw_f1TnYmF8VIssU,566385
60
- vibe_surf/chrome_extension/scripts/api-client.js,sha256=MkIKaTRU923QvHMLbhRNB1MgxIypi-Lau1wwg3lH-wU,15819
64
+ vibe_surf/chrome_extension/scripts/api-client.js,sha256=qbNoOo33SIoADV5BbSOo_jj9n7FdOPi7v1E5HHhlgSs,16901
61
65
  vibe_surf/chrome_extension/scripts/file-manager.js,sha256=dtaYJNrpUnKH9zCsIpAAEkFN43ownDRtkyUhV8zxGZ0,17585
62
66
  vibe_surf/chrome_extension/scripts/history-manager.js,sha256=J_EiBKrRp2cTxuy0Sq5oCju5YuX0_2pGG6NWrJSjC24,22218
63
67
  vibe_surf/chrome_extension/scripts/main.js,sha256=jf1Tsi-5ZgjLyDl5ToqkI9c3tElWBsvSL9_c-HD6seA,18524
@@ -66,7 +70,7 @@ vibe_surf/chrome_extension/scripts/modal-manager.js,sha256=9ekFaTmy8sk94KK9HZJ77
66
70
  vibe_surf/chrome_extension/scripts/permission-iframe-request.js,sha256=JTin53qSN8PqH4yoXluoK_llGJl1UlOgswp_9ojqxuk,8541
67
71
  vibe_surf/chrome_extension/scripts/permission-request.js,sha256=9WEeTqMD0tHm1aX2ySkZgJ23siVZLZWAjVQe2dSmnoI,5168
68
72
  vibe_surf/chrome_extension/scripts/session-manager.js,sha256=rOPGDTyV1oK-qYfqJKK8mpvQFSdnz0_F0wCcbxPfTSw,21887
69
- vibe_surf/chrome_extension/scripts/settings-manager.js,sha256=9UGJFxQ1DbDbfndEBDv32MHfAW8YdfZmwg0vW6ABXOQ,77257
73
+ vibe_surf/chrome_extension/scripts/settings-manager.js,sha256=EBMOlAeiEEKY6bDowb_nVT3REtPbNKgMN4xCJoSwFVE,113793
70
74
  vibe_surf/chrome_extension/scripts/ui-manager.js,sha256=A1dO6tFYoW7Ynh1eneSw_akVG_PtlioBhXhRHTVKQyU,129048
71
75
  vibe_surf/chrome_extension/scripts/user-settings-storage.js,sha256=5aGuHXwTokX5wKjdNnu3rVkZv9XoD15FmgCELRRE3Xw,14191
72
76
  vibe_surf/chrome_extension/scripts/voice-recorder.js,sha256=rIq9Rhyq-QyeCxJxxZGbnbPC0MCjQtNx6T2UC1g_al4,16852
@@ -80,22 +84,27 @@ vibe_surf/chrome_extension/styles/layout.css,sha256=HikLtMB4IxPdwjq8bDmJ7E3B0rAr
80
84
  vibe_surf/chrome_extension/styles/responsive.css,sha256=a_SFX-PeOcenG4xMeoru5XFnnXdf0YhEyRzvTVVZHdI,8529
81
85
  vibe_surf/chrome_extension/styles/settings-environment.css,sha256=UpjdTdGszUtNrrLF-T9sIhBBWrnY6oNVvrPcgkB9S8A,6215
82
86
  vibe_surf/chrome_extension/styles/settings-forms.css,sha256=oR93bdQDZyu-b-z_HGkX3f-wC1yP-35mW7B8ec6KlSw,7061
83
- vibe_surf/chrome_extension/styles/settings-modal.css,sha256=VEkr1WmDltdeaoP4fWJ-Jk2t8TNrB5rsz-zLUv3usPI,2727
87
+ vibe_surf/chrome_extension/styles/settings-integrations.css,sha256=7_GnANj8IkBN8OB7RJMlkGKRqL1OtAwUI76W773pDPs,19907
88
+ vibe_surf/chrome_extension/styles/settings-modal.css,sha256=yHcY1HP9f-VpIWTNaHzUwNJQUPRMQvt3OjeZPOZqb3E,2812
84
89
  vibe_surf/chrome_extension/styles/settings-profiles.css,sha256=o0FowPPiZum_DvYIGF5p4gEl63QVXTHDoVeD1Q4yy_s,4946
85
- vibe_surf/chrome_extension/styles/settings-responsive.css,sha256=jLE0yG15n2aI6_6QF04Rh0Y-oqqLNen81YAVt5yc2Ws,2168
90
+ vibe_surf/chrome_extension/styles/settings-responsive.css,sha256=jIlYWkOpom0iTWQWM_2g3NQ_tk3LZvJt41gi3S9AuEM,2862
86
91
  vibe_surf/chrome_extension/styles/settings-utilities.css,sha256=3PuQS2857kg83d5erLbLdo_7J95-qV-qyNWS5M-w1oQ,505
87
92
  vibe_surf/chrome_extension/styles/variables.css,sha256=enjyhsa0PeU3b-3uiXa-VkV-1-h2-Ai3m4KpmC2k0rY,2984
88
93
  vibe_surf/llm/__init__.py,sha256=_vDVPo6STf343p1SgMQrF5023hicAx0g83pK2Gbk4Ek,601
89
94
  vibe_surf/llm/openai_compatible.py,sha256=i0a5OLaL6QIlacVyctOG09vKr3KOi8T8Izp1v7xkD5I,16112
95
+ vibe_surf/telemetry/__init__.py,sha256=izfMX5F3ff92t4E6Y-6onYG8oJAx-bGtFFXRymPwFp0,2085
96
+ vibe_surf/telemetry/service.py,sha256=7AsvouGUI5lz5hsfxitVcarCwbfmGJHjJkslDZiTEhY,3717
97
+ vibe_surf/telemetry/views.py,sha256=9CVFwwlmSi6xYuM4KI9C3cGe5bxMGm0-qAAwNmXN7zw,3800
90
98
  vibe_surf/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
99
  vibe_surf/tools/browser_use_tools.py,sha256=kvDUMQY4ScrTIs1jxF4JbsDK39W3ti283KKrjf35e2A,31925
100
+ vibe_surf/tools/composio_client.py,sha256=hbvUYiTSlNNRvBQmoVkxtJnd6pXm7PaevcTo1nQZEx8,18822
92
101
  vibe_surf/tools/file_system.py,sha256=Tw_6J5QjCahQ3fd26CXziF1zPvRxhYM0889oK4bDhlU,19304
93
102
  vibe_surf/tools/finance_tools.py,sha256=E8rmblp57e_cp0tFbdZ7BY3_upNlk4Whk0bYc_SFCJE,27284
94
- vibe_surf/tools/mcp_client.py,sha256=OeCoTgyx4MoY7JxXndK6pGHIoyFOhf5r7XCbx25y1Ec,2446
103
+ vibe_surf/tools/mcp_client.py,sha256=ZrwzboDBf7-rtzO8JYpBhvKGg88CMfbrXlhtIs8pXSQ,3167
95
104
  vibe_surf/tools/report_writer_tools.py,sha256=2CyTTXOahTKZo7XwyWDDhJ--1mRA0uTtUWxu_DACAY0,776
96
105
  vibe_surf/tools/vibesurf_registry.py,sha256=Z-8d9BrJl3RFMEK0Tw1Q5xNHX2kZGsnIGCTBZ3RM-pw,2159
97
- vibe_surf/tools/vibesurf_tools.py,sha256=HSKhaiI8DWtrnsCwtLONImV4VdltO2aZ-I8SiqvayoM,114366
98
- vibe_surf/tools/views.py,sha256=PZWW2QSfk4xQ6EVTBW0dJUnv8nIRC7alAq4GIjBiWxU,12414
106
+ vibe_surf/tools/vibesurf_tools.py,sha256=oVQOVUntjoOriNxp9Zg7KkrglrySEcfD2jhyKuv4kpo,122966
107
+ vibe_surf/tools/views.py,sha256=pkZuX7FgvwYz9UqCo9Z4zMq84hu_XkMmxoy84iMMcg8,12883
99
108
  vibe_surf/tools/voice_asr.py,sha256=AJG0yq_Jq-j8ulDlbPhVFfK1jch9_ASesis73iki9II,4702
100
109
  vibe_surf/tools/website_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
110
  vibe_surf/tools/website_api/douyin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -108,11 +117,11 @@ vibe_surf/tools/website_api/xhs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
108
117
  vibe_surf/tools/website_api/xhs/client.py,sha256=pKtq_d78C-XqvcpmxCEGsd3zftGkfCkF66o-XTmxk00,30858
109
118
  vibe_surf/tools/website_api/xhs/helpers.py,sha256=Dq2RyYKClBQ2ha2yEfpS1mtZswx0z9gdB2Wyljc83SI,10448
110
119
  vibe_surf/tools/website_api/youtube/__init__.py,sha256=QWmZWSqo1O6XtaWP-SuL3HrBLYINjEWEyOy-KCytGDw,1145
111
- vibe_surf/tools/website_api/youtube/client.py,sha256=hq25WU9Ot19hMaVjlSLmQH660A15OSmai5u60HcjLc8,51452
120
+ vibe_surf/tools/website_api/youtube/client.py,sha256=0kKy7fkBNc63hRvDgXaKnguDpDJ92rG8T2nT_Y1F5MQ,51989
112
121
  vibe_surf/tools/website_api/youtube/helpers.py,sha256=GPgqfNirLYjIpk1OObvoXd2Ktq-ahKOOKHO2WwQVXCw,12931
113
- vibesurf-0.1.32.dist-info/licenses/LICENSE,sha256=vRmTjOYvD8RLiSGYYmFHnveYNswtO1uvSk1sd-Eu7sg,2037
114
- vibesurf-0.1.32.dist-info/METADATA,sha256=aFcIzRLOinCst-6iVvV9MGYef1VTTd86rL2GvXoSk8M,6153
115
- vibesurf-0.1.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
- vibesurf-0.1.32.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
117
- vibesurf-0.1.32.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
118
- vibesurf-0.1.32.dist-info/RECORD,,
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,,