vibesurf 0.1.19__py3-none-any.whl → 0.1.20__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.19'
32
- __version_tuple__ = version_tuple = (0, 1, 19)
31
+ __version__ = version = '0.1.20'
32
+ __version_tuple__ = version_tuple = (0, 1, 20)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -136,7 +136,7 @@ class ReportWriterAgent:
136
136
  create_result = await self.file_system.create_file(report_filename)
137
137
  logger.info(f"Created report file: {create_result}")
138
138
 
139
- max_iterations = 6 # Prevent infinite loops
139
+ max_iterations = 10 # Prevent infinite loops
140
140
 
141
141
  # Add system message with unified prompt only if message history is empty
142
142
  if not self.message_history:
@@ -0,0 +1,11 @@
1
+ -- Migration: v003_fix_task_status_case.sql
2
+ -- Description: Fix task status values to use lowercase (enum values)
3
+ -- Version: 0.0.3
4
+
5
+ -- Update any uppercase status values to lowercase to match TaskStatus enum
6
+ UPDATE tasks SET status = 'pending' WHERE status = 'PENDING';
7
+ UPDATE tasks SET status = 'running' WHERE status = 'RUNNING';
8
+ UPDATE tasks SET status = 'paused' WHERE status = 'PAUSED';
9
+ UPDATE tasks SET status = 'completed' WHERE status = 'COMPLETED';
10
+ UPDATE tasks SET status = 'failed' WHERE status = 'FAILED';
11
+ UPDATE tasks SET status = 'stopped' WHERE status = 'STOPPED';
@@ -0,0 +1,54 @@
1
+ import os
2
+ import pdb
3
+
4
+ import dashscope
5
+ from typing import Optional
6
+ from vibe_surf.logger import get_logger
7
+
8
+ logger = get_logger(__name__)
9
+
10
+ class QwenASR:
11
+ def __init__(self, model="qwen3-asr-flash", api_key: Optional[str] = None):
12
+ dashscope.api_key = api_key or os.getenv("DASHSCOPE_API_KEY")
13
+ self.model = model
14
+
15
+ def asr(self, wav_url: str, context=""):
16
+ if not wav_url.startswith("http"):
17
+ assert os.path.exists(wav_url), f"{wav_url} not exists!"
18
+ wav_url = f"file://{wav_url}"
19
+
20
+ try:
21
+ messages = [
22
+ {
23
+ "role": "system",
24
+ "content": [
25
+ {"text": context},
26
+ ]
27
+ },
28
+ {
29
+ "role": "user",
30
+ "content": [
31
+ {"audio": wav_url},
32
+ ]
33
+ }
34
+ ]
35
+ response = dashscope.MultiModalConversation.call(
36
+ model=self.model,
37
+ messages=messages,
38
+ result_format="message",
39
+ asr_options={
40
+ "enable_lid": True,
41
+ "enable_itn": False
42
+ }
43
+ )
44
+ if response.status_code != 200:
45
+ raise Exception(f"http status_code: {response.status_code} {response}")
46
+ output = response['output']['choices'][0]
47
+ if output['finish_reason'] not in ('stop', 'function_call'):
48
+ logger.warning(f'{self.model} finish with error...\n{response}')
49
+ return ""
50
+ recog_text = output["message"]["content"][0]["text"]
51
+ return recog_text
52
+ except Exception as e:
53
+ logger.warning(str(e))
54
+ return ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vibesurf
3
- Version: 0.1.19
3
+ Version: 0.1.20
4
4
  Summary: VibeSurf: A powerful browser assistant for vibe surfing
5
5
  Author: Shao Warm
6
6
  License: Apache-2.0
@@ -42,6 +42,7 @@ Requires-Dist: markdown-pdf>=1.9
42
42
  Requires-Dist: nanoid>=2.0.0
43
43
  Requires-Dist: markdownify>=1.2.0
44
44
  Requires-Dist: pathvalidate>=3.3.1
45
+ Requires-Dist: dashscope>=1.24.5
45
46
  Dynamic: license-file
46
47
 
47
48
  # VibeSurf: A powerful browser assistant for vibe surfing
@@ -1,11 +1,11 @@
1
1
  vibe_surf/__init__.py,sha256=WtduuMFGauMD_9dpk4fnRnLTAP6ka9Lfu0feAFNzLfo,339
2
- vibe_surf/_version.py,sha256=fjpHGGz4Pr5zOvmurEGTqs99z8OU4DpgAvX1DM3jqc4,706
2
+ vibe_surf/_version.py,sha256=P88Jfo9OvOr8LB0vHFqLUwFR7A0eE281KxEewbcCSBc,706
3
3
  vibe_surf/cli.py,sha256=pbep2dBeQqralZ8AggkH4h2nayBarbdN8lhZxo35gNU,16689
4
4
  vibe_surf/common.py,sha256=_WWMxen5wFwzUjEShn3yDVC1OBFUiJ6Vccadi6tuG6w,1215
5
5
  vibe_surf/logger.py,sha256=k53MFA96QX6t9OfcOf1Zws8PP0OOqjVJfhUD3Do9lKw,3043
6
6
  vibe_surf/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  vibe_surf/agents/browser_use_agent.py,sha256=qmm3TAVzEYjvOvSQEa5xUZOgpBOR_8qePME8BjLjOd0,45951
8
- vibe_surf/agents/report_writer_agent.py,sha256=0RZHcrk6WoC7GE66QshrPLt6ka7GlRtnCsgjO7Dfxfw,20966
8
+ vibe_surf/agents/report_writer_agent.py,sha256=pCF2k6VLyO-sSviGBqqIyVD3SLqaZtSqiW3kvNfPY1I,20967
9
9
  vibe_surf/agents/vibe_surf_agent.py,sha256=i7O4Djw3Pd1ijwbkGbXkQqO1y0RunlelCqajjfJFfaQ,73687
10
10
  vibe_surf/agents/views.py,sha256=yHjNJloa-aofVTGyuRy08tBYP_Y3XLqt1DUWOUmHRng,4825
11
11
  vibe_surf/agents/prompts/__init__.py,sha256=l4ieA0D8kLJthyNN85FKLNe4ExBa3stY3l-aImLDRD0,36
@@ -29,6 +29,7 @@ vibe_surf/backend/database/queries.py,sha256=WEXZBNHQ1LWWR4Bv-49LMs8mZOkapFBx2_v
29
29
  vibe_surf/backend/database/schemas.py,sha256=OPnpRKwYG1Cu8geJ6pajiEDF8x8mRestXnAfI4Gy18w,3402
30
30
  vibe_surf/backend/database/migrations/v001_initial_schema.sql,sha256=MC2fa1WHUEhHhdOTxz0qB4RI7JdGRpiGXZ77ytl3LRQ,4345
31
31
  vibe_surf/backend/database/migrations/v002_add_agent_mode.sql,sha256=jKnW28HsphUeU9kudEx9QaLnUh8swmmOt-hFsZJay24,251
32
+ vibe_surf/backend/database/migrations/v003_fix_task_status_case.sql,sha256=npzRgEnKymTzvb-nOZHtycjVyWX2Dx0tCEtrZJfcujg,580
32
33
  vibe_surf/backend/utils/__init__.py,sha256=V8leMFp7apAglUAoCHPZrNNcRHthSLYIudIJE5qwjb0,184
33
34
  vibe_surf/backend/utils/encryption.py,sha256=CjLNh_n0Luhfa-6BB-icfzkiiDqj5b4Gu6MADU3p2eM,3754
34
35
  vibe_surf/backend/utils/llm_factory.py,sha256=mNy8o3sw7vYJ8gwiTsrgXbG7Ri_B11ylE4KGcfHULp8,8972
@@ -84,9 +85,10 @@ vibe_surf/tools/mcp_client.py,sha256=OeCoTgyx4MoY7JxXndK6pGHIoyFOhf5r7XCbx25y1Ec
84
85
  vibe_surf/tools/report_writer_tools.py,sha256=sUqUFr-_Rs8RJ0Bs77Hrp07kNwRIvHv7ErzSPYSlbTg,705
85
86
  vibe_surf/tools/vibesurf_tools.py,sha256=VVhM2IZOXwpGvJ3v9jTXFHmxTxF2jAzhrwqFqxFVuX4,29976
86
87
  vibe_surf/tools/views.py,sha256=aPoabrXOCrn5vPCAauMKYvpyP9n0qC2xKn1IbjAGXwE,4218
87
- vibesurf-0.1.19.dist-info/licenses/LICENSE,sha256=czn6QYya0-jhLnStD9JqnMS-hwP5wRByipkrGTvoXLI,11355
88
- vibesurf-0.1.19.dist-info/METADATA,sha256=-qI0fID0163n3z-oBIL15hUrNrvhlqCWDzg4iffUK3A,5313
89
- vibesurf-0.1.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
90
- vibesurf-0.1.19.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
91
- vibesurf-0.1.19.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
92
- vibesurf-0.1.19.dist-info/RECORD,,
88
+ vibe_surf/tools/voice_asr.py,sha256=iBMzPSXYDtAbalr-lwzsGVKQPbR0Cj2lvsKSLKyEcU8,1790
89
+ vibesurf-0.1.20.dist-info/licenses/LICENSE,sha256=czn6QYya0-jhLnStD9JqnMS-hwP5wRByipkrGTvoXLI,11355
90
+ vibesurf-0.1.20.dist-info/METADATA,sha256=EvLwKDgeGFER75FSHwSj8koN5g02vwROXU-fl0rHXm0,5346
91
+ vibesurf-0.1.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
92
+ vibesurf-0.1.20.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
93
+ vibesurf-0.1.20.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
94
+ vibesurf-0.1.20.dist-info/RECORD,,