vibesurf 0.1.6__py3-none-any.whl → 0.1.8__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/agents/browser_use_agent.py +48 -154
- vibe_surf/agents/vibe_surf_agent.py +13 -12
- vibe_surf/backend/shared_state.py +1 -1
- vibe_surf/backend/utils/encryption.py +5 -35
- vibe_surf/browser/agen_browser_profile.py +3 -4
- vibe_surf/browser/agent_browser_session.py +115 -52
- vibe_surf/browser/browser_manager.py +2 -2
- vibe_surf/browser/utils.py +8 -15
- vibe_surf/browser/watchdogs/action_watchdog.py +8 -194
- vibe_surf/browser/watchdogs/dom_watchdog.py +3 -675
- vibe_surf/chrome_extension/scripts/session-manager.js +0 -2
- vibe_surf/chrome_extension/scripts/ui-manager.js +3 -3
- vibe_surf/cli.py +7 -1
- vibe_surf/controller/mcp_client.py +0 -4
- vibe_surf/controller/{vibesurf_controller.py → vibesurf_tools.py} +13 -48
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/METADATA +8 -3
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/RECORD +22 -22
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/WHEEL +0 -0
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/entry_points.txt +0 -0
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/licenses/LICENSE +0 -0
- {vibesurf-0.1.6.dist-info → vibesurf-0.1.8.dist-info}/top_level.txt +0 -0
|
@@ -201,7 +201,6 @@ class VibeSurfSessionManager {
|
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
try {
|
|
204
|
-
// ✅ 改进:提交新任务前先同步session的所有activity logs
|
|
205
204
|
console.log('[SessionManager] 🔄 Syncing activity logs before task submission...');
|
|
206
205
|
await this.syncActivityLogsFromServer();
|
|
207
206
|
|
|
@@ -343,7 +342,6 @@ class VibeSurfSessionManager {
|
|
|
343
342
|
}
|
|
344
343
|
|
|
345
344
|
try {
|
|
346
|
-
// ✅ 使用当前logs数量作为message_index,确保获取下一个预期的log
|
|
347
345
|
const requestIndex = this.activityLogs.length;
|
|
348
346
|
|
|
349
347
|
console.log(`[SessionManager] 🔄 Polling activity at index ${requestIndex}, current logs: ${this.activityLogs.length}`);
|
|
@@ -506,7 +506,7 @@ class VibeSurfUIManager {
|
|
|
506
506
|
if (this.controlPanelMinVisibilityActive) {
|
|
507
507
|
console.log('[UIManager] Task completed during minimum visibility period, delaying control panel hide');
|
|
508
508
|
// Wait for minimum visibility period to end before hiding
|
|
509
|
-
const remainingTime =
|
|
509
|
+
const remainingTime = 1000; // Could be calculated more precisely, but 2s is reasonable
|
|
510
510
|
setTimeout(() => {
|
|
511
511
|
console.log('[UIManager] Minimum visibility period respected, now hiding control panel');
|
|
512
512
|
this.updateControlPanel('ready');
|
|
@@ -561,7 +561,7 @@ class VibeSurfUIManager {
|
|
|
561
561
|
console.warn('[UIManager] Could not verify task status after error:', err);
|
|
562
562
|
// If we can't verify, keep controls visible for safety
|
|
563
563
|
});
|
|
564
|
-
},
|
|
564
|
+
}, 1000);
|
|
565
565
|
}
|
|
566
566
|
|
|
567
567
|
// Task Status Monitoring
|
|
@@ -589,7 +589,7 @@ class VibeSurfUIManager {
|
|
|
589
589
|
// Check task status every 2 seconds
|
|
590
590
|
this.taskStatusInterval = setInterval(() => {
|
|
591
591
|
this.checkTaskStatus();
|
|
592
|
-
},
|
|
592
|
+
}, 500);
|
|
593
593
|
}
|
|
594
594
|
|
|
595
595
|
stopTaskStatusMonitoring() {
|
vibe_surf/cli.py
CHANGED
|
@@ -13,6 +13,10 @@ import platform
|
|
|
13
13
|
import importlib.util
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
from typing import Optional
|
|
16
|
+
import os
|
|
17
|
+
|
|
18
|
+
# In case user has a proxy in localhost
|
|
19
|
+
os.environ['no_proxy'] = 'localhost,127.0.0.1,::1'
|
|
16
20
|
|
|
17
21
|
try:
|
|
18
22
|
from rich.console import Console
|
|
@@ -388,7 +392,9 @@ def main():
|
|
|
388
392
|
try:
|
|
389
393
|
# Display logo
|
|
390
394
|
console.print(Panel(VIBESURF_LOGO, title="[bold cyan]VibeSurf CLI[/bold cyan]", border_style="cyan"))
|
|
391
|
-
console.print("[dim]A powerful browser automation tool for vibe surfing 🏄♂️[/dim]
|
|
395
|
+
console.print("[dim]A powerful browser automation tool for vibe surfing 🏄♂️[/dim]")
|
|
396
|
+
import vibe_surf
|
|
397
|
+
console.print(f"[dim]Version: {vibe_surf.__version__}[/dim]\n")
|
|
392
398
|
|
|
393
399
|
# Check for existing browser path from configuration
|
|
394
400
|
browser_path = get_browser_execution_path()
|
|
@@ -3,11 +3,7 @@ import logging
|
|
|
3
3
|
import time
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
from pydantic import BaseModel, ConfigDict, Field, create_model
|
|
7
6
|
|
|
8
|
-
from browser_use.agent.views import ActionResult
|
|
9
|
-
from browser_use.controller.registry.service import Registry
|
|
10
|
-
from browser_use.controller.service import Controller
|
|
11
7
|
from browser_use.telemetry import MCPClientTelemetryEvent, ProductTelemetry
|
|
12
8
|
from browser_use.utils import get_browser_use_version
|
|
13
9
|
from browser_use.mcp.client import MCPClient
|
|
@@ -8,7 +8,7 @@ import mimetypes
|
|
|
8
8
|
|
|
9
9
|
from typing import Optional, Type, Callable, Dict, Any, Union, Awaitable, TypeVar
|
|
10
10
|
from pydantic import BaseModel
|
|
11
|
-
from browser_use.
|
|
11
|
+
from browser_use.tools.service import Controller, Tools
|
|
12
12
|
import logging
|
|
13
13
|
from browser_use.agent.views import ActionModel, ActionResult
|
|
14
14
|
from browser_use.utils import time_execution_sync
|
|
@@ -16,7 +16,7 @@ from browser_use.filesystem.file_system import FileSystem
|
|
|
16
16
|
from browser_use.browser import BrowserSession
|
|
17
17
|
from browser_use.browser.events import UploadFileEvent
|
|
18
18
|
from browser_use.observability import observe_debug
|
|
19
|
-
from browser_use.
|
|
19
|
+
from browser_use.tools.views import (
|
|
20
20
|
ClickElementAction,
|
|
21
21
|
CloseTabAction,
|
|
22
22
|
DoneAction,
|
|
@@ -50,7 +50,7 @@ Context = TypeVar('Context')
|
|
|
50
50
|
T = TypeVar('T', bound=BaseModel)
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
class
|
|
53
|
+
class VibeSurfTools(Tools):
|
|
54
54
|
def __init__(self,
|
|
55
55
|
exclude_actions: list[str] = [],
|
|
56
56
|
output_model: type[T] | None = None,
|
|
@@ -360,6 +360,11 @@ Provide the extracted information in a clear, structured format."""
|
|
|
360
360
|
|
|
361
361
|
@self.registry.action('Read file_name from file system. If this is a file not in Current workspace dir or with a absolute path, Set external_file=True.')
|
|
362
362
|
async def read_file(file_name: str, external_file: bool, file_system: FileSystem):
|
|
363
|
+
if not os.path.exists(file_name):
|
|
364
|
+
# if not exists, assume it is external_file
|
|
365
|
+
external_file = True
|
|
366
|
+
else:
|
|
367
|
+
external_file = False
|
|
363
368
|
result = await file_system.read_file(file_name, external_file=external_file)
|
|
364
369
|
|
|
365
370
|
MAX_MEMORY_SIZE = 1000
|
|
@@ -397,10 +402,10 @@ Provide the extracted information in a clear, structured format."""
|
|
|
397
402
|
try:
|
|
398
403
|
# Get file path
|
|
399
404
|
file_path = params.file_path
|
|
400
|
-
|
|
405
|
+
|
|
401
406
|
# Check if file exists
|
|
402
407
|
if not os.path.exists(file_path):
|
|
403
|
-
|
|
408
|
+
file_path = os.path.join(file_system.get_dir(), file_path)
|
|
404
409
|
|
|
405
410
|
# Determine if file is an image based on MIME type
|
|
406
411
|
mime_type, _ = mimetypes.guess_type(file_path)
|
|
@@ -526,8 +531,8 @@ Provide the extracted information in a clear, structured format."""
|
|
|
526
531
|
|
|
527
532
|
# Register tools to controller with prefix
|
|
528
533
|
prefix = f"mcp.{server_name}."
|
|
529
|
-
await client.
|
|
530
|
-
|
|
534
|
+
await client.register_to_tools(
|
|
535
|
+
tools=self,
|
|
531
536
|
prefix=prefix
|
|
532
537
|
)
|
|
533
538
|
|
|
@@ -573,44 +578,4 @@ Provide the extracted information in a clear, structured format."""
|
|
|
573
578
|
self.mcp_clients.clear()
|
|
574
579
|
logger.info('All MCP clients unregistered and disconnected')
|
|
575
580
|
|
|
576
|
-
|
|
577
|
-
@time_execution_sync('--act')
|
|
578
|
-
async def act(
|
|
579
|
-
self,
|
|
580
|
-
action: ActionModel,
|
|
581
|
-
browser_session: BrowserSession| None = None,
|
|
582
|
-
#
|
|
583
|
-
page_extraction_llm: BaseChatModel | None = None,
|
|
584
|
-
sensitive_data: dict[str, str | dict[str, str]] | None = None,
|
|
585
|
-
available_file_paths: list[str] | None = None,
|
|
586
|
-
file_system: FileSystem | None = None,
|
|
587
|
-
#
|
|
588
|
-
context: Context | None = None,
|
|
589
|
-
) -> ActionResult:
|
|
590
|
-
"""Execute an action"""
|
|
591
|
-
|
|
592
|
-
for action_name, params in action.model_dump(exclude_unset=True).items():
|
|
593
|
-
if params is not None:
|
|
594
|
-
try:
|
|
595
|
-
result = await self.registry.execute_action(
|
|
596
|
-
action_name=action_name,
|
|
597
|
-
params=params,
|
|
598
|
-
browser_session=browser_session,
|
|
599
|
-
page_extraction_llm=page_extraction_llm,
|
|
600
|
-
file_system=file_system,
|
|
601
|
-
sensitive_data=sensitive_data,
|
|
602
|
-
available_file_paths=available_file_paths,
|
|
603
|
-
context=context,
|
|
604
|
-
)
|
|
605
|
-
except Exception as e:
|
|
606
|
-
result = ActionResult(error=str(e))
|
|
607
|
-
|
|
608
|
-
if isinstance(result, str):
|
|
609
|
-
return ActionResult(extracted_content=result)
|
|
610
|
-
elif isinstance(result, ActionResult):
|
|
611
|
-
return result
|
|
612
|
-
elif result is None:
|
|
613
|
-
return ActionResult()
|
|
614
|
-
else:
|
|
615
|
-
raise ValueError(f'Invalid action result type: {type(result)} of {result}')
|
|
616
|
-
return ActionResult()
|
|
581
|
+
VibeSurfController = VibeSurfTools
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibesurf
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.8
|
|
4
4
|
Summary: VibeSurf: A powerful browser assistant for vibe surfing
|
|
5
5
|
Author: Shao Warm
|
|
6
6
|
License: Apache-2.0
|
|
@@ -26,7 +26,7 @@ Requires-Dist: json-repair>=0.48.0
|
|
|
26
26
|
Requires-Dist: aiohttp>=3.12.15
|
|
27
27
|
Requires-Dist: scikit-image>=0.25.2
|
|
28
28
|
Requires-Dist: python-socks>=2.7.2
|
|
29
|
-
Requires-Dist: browser-use==0.
|
|
29
|
+
Requires-Dist: browser-use==0.7.1
|
|
30
30
|
Requires-Dist: langgraph>=0.6.4
|
|
31
31
|
Requires-Dist: fastapi>=0.104.0
|
|
32
32
|
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
@@ -37,6 +37,7 @@ Requires-Dist: sqlalchemy>=2.0.43
|
|
|
37
37
|
Requires-Dist: aiosqlite>=0.21.0
|
|
38
38
|
Requires-Dist: rich>=13.0.0
|
|
39
39
|
Requires-Dist: greenlet>=3.2.4
|
|
40
|
+
Requires-Dist: getmac>=0.9.5
|
|
40
41
|
Dynamic: license-file
|
|
41
42
|
|
|
42
43
|
# VibeSurf: A powerful browser assistant for vibe surfing
|
|
@@ -75,7 +76,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
|
|
|
75
76
|
### Step 2: Setup and Install
|
|
76
77
|
```bash
|
|
77
78
|
uv venv --python 3.12
|
|
78
|
-
uv pip install vibesurf
|
|
79
|
+
uv pip install vibesurf -U
|
|
79
80
|
```
|
|
80
81
|
|
|
81
82
|
### Step 3: Launch
|
|
@@ -85,8 +86,12 @@ vibesurf
|
|
|
85
86
|
|
|
86
87
|
## 🎬 Demo
|
|
87
88
|
|
|
89
|
+
### How to use?
|
|
88
90
|
<video src="https://github.com/user-attachments/assets/0a4650c0-c4ed-423e-9e16-7889e9f9816d" controls="controls">Your browser does not support playing this video!</video>
|
|
89
91
|
|
|
92
|
+
### Dozens of agent running in on browser
|
|
93
|
+
<video src="https://github.com/user-attachments/assets/9c461a6e-5d97-4335-ba09-59e8ec4ad47b" controls="controls">Your browser does not support playing this video!</video>
|
|
94
|
+
|
|
90
95
|
|
|
91
96
|
## 📝 License
|
|
92
97
|
|
|
@@ -1,16 +1,16 @@
|
|
|
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=Zaz3s9gl_rzsS46-ymJOALojMxviW77EJq_agE8knLk,704
|
|
3
|
+
vibe_surf/cli.py,sha256=Gy9a3JmfCdTTNJpM2-jc1fL2gczCWzqYXIZi8hngvgE,17109
|
|
4
4
|
vibe_surf/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
vibe_surf/agents/browser_use_agent.py,sha256=
|
|
5
|
+
vibe_surf/agents/browser_use_agent.py,sha256=5NXZCQphHKlyNtLjhwG9ezBXFIo91ZnlFPRhUye7c3U,45202
|
|
6
6
|
vibe_surf/agents/report_writer_agent.py,sha256=E5mSirewzH4Oyv385-Nn2Mf1Ug3OCVBz99PoTbvKRfQ,13860
|
|
7
|
-
vibe_surf/agents/vibe_surf_agent.py,sha256=
|
|
7
|
+
vibe_surf/agents/vibe_surf_agent.py,sha256=bl0Xl9Aw3qFvKGlWA6ctrWF5Y09DDadGfNaY524T_yQ,70370
|
|
8
8
|
vibe_surf/agents/prompts/__init__.py,sha256=l4ieA0D8kLJthyNN85FKLNe4ExBa3stY3l-aImLDRD0,36
|
|
9
9
|
vibe_surf/agents/prompts/vibe_surf_prompt.py,sha256=u-6KgLSnBbQohS5kiLZDcZ3aoT90ScVONXi9gNvdMoo,11006
|
|
10
10
|
vibe_surf/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
vibe_surf/backend/llm_config.py,sha256=9V8Gg065TQALbOKQnOqFWd8RzOJjegOD8w6YOf90Q7Y,5036
|
|
12
12
|
vibe_surf/backend/main.py,sha256=Y1xZJNBjOhgOjNegmetZj9AGUIn2ft10FSCCvMl4XRo,4047
|
|
13
|
-
vibe_surf/backend/shared_state.py,sha256=
|
|
13
|
+
vibe_surf/backend/shared_state.py,sha256=yTGyojod0k3Y4ZxtKr4l75ewLAyvnLtAR43nbbSCryU,23135
|
|
14
14
|
vibe_surf/backend/api/__init__.py,sha256=XxF1jUOORpLYCfFuPrrnUGRnOrr6ClH0_MNPU-4RnSs,68
|
|
15
15
|
vibe_surf/backend/api/activity.py,sha256=NRSTsN3JnE63kDFhfgH3rmC9qxAeIaMKUqbXrOuZlSQ,9364
|
|
16
16
|
vibe_surf/backend/api/config.py,sha256=9yTip3L0dBCy8jP6MqbpX_hk1Zk8KYrR-W18R0i7wjI,27091
|
|
@@ -26,16 +26,16 @@ vibe_surf/backend/migrations/__init__.py,sha256=dLhZwW6AGyfBSid-QJPCpIlS4DnYDvO8
|
|
|
26
26
|
vibe_surf/backend/migrations/init_db.py,sha256=pY2Yq7K1vPxqT8r3jlAQcYEQWK-GGbb0F7W5asGpuew,10399
|
|
27
27
|
vibe_surf/backend/migrations/seed_data.py,sha256=L6Ll-u8P4cICAUlD5y9urQPSUld6M67erSBCEIdw8Uc,8239
|
|
28
28
|
vibe_surf/backend/utils/__init__.py,sha256=V8leMFp7apAglUAoCHPZrNNcRHthSLYIudIJE5qwjb0,184
|
|
29
|
-
vibe_surf/backend/utils/encryption.py,sha256=
|
|
29
|
+
vibe_surf/backend/utils/encryption.py,sha256=JBl0olXQ-tESvZywuhGvy57soLhFw4ZKnbXWMWpgimg,3720
|
|
30
30
|
vibe_surf/backend/utils/llm_factory.py,sha256=4oHaKpizqA069dcXm0iK5G1SS-fhhOY5l6cM3SCFmwE,9172
|
|
31
31
|
vibe_surf/browser/__init__.py,sha256=_UToO2fZfSCrfjOcxhn4Qq7ZLbYeyPuUUEmqIva-Yv8,325
|
|
32
|
-
vibe_surf/browser/agen_browser_profile.py,sha256=
|
|
33
|
-
vibe_surf/browser/agent_browser_session.py,sha256
|
|
34
|
-
vibe_surf/browser/browser_manager.py,sha256=
|
|
35
|
-
vibe_surf/browser/utils.py,sha256=
|
|
32
|
+
vibe_surf/browser/agen_browser_profile.py,sha256=4H4qDjqLqHAfMi3niBI9fd0S1GlVDWYDUUOrEQoNkl8,5677
|
|
33
|
+
vibe_surf/browser/agent_browser_session.py,sha256=KGRl2AtNy0gt0Edfr9ShKqCb68qT4pT9jl0s5ZLN098,22250
|
|
34
|
+
vibe_surf/browser/browser_manager.py,sha256=38lF723AH44rBShl62P34GIDvxvcK4oy57IXyjqHDXs,12275
|
|
35
|
+
vibe_surf/browser/utils.py,sha256=Um_hTZgDH4gL-cCKSeUBMEqPLVForCMYp1nN7ugD5co,35704
|
|
36
36
|
vibe_surf/browser/watchdogs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
vibe_surf/browser/watchdogs/action_watchdog.py,sha256=
|
|
38
|
-
vibe_surf/browser/watchdogs/dom_watchdog.py,sha256=
|
|
37
|
+
vibe_surf/browser/watchdogs/action_watchdog.py,sha256=6lM0nOR67clLzC6nVEMZ2Vam8VHDW8GRlg_jbGUHbPk,5297
|
|
38
|
+
vibe_surf/browser/watchdogs/dom_watchdog.py,sha256=leohqqM9loMbmqobtOMxPSsM2IrK9jyu-xYCSfXIiCA,13045
|
|
39
39
|
vibe_surf/chrome_extension/background.js,sha256=P99qkisiN_Zsn8bu_9dWeXyK8CQthLD9FaGG2z1SMDU,16282
|
|
40
40
|
vibe_surf/chrome_extension/config.js,sha256=g53UkfsaOFNC6fZG-THlBxdSjvswPsaQ9w8rxiHNq2E,1093
|
|
41
41
|
vibe_surf/chrome_extension/content.js,sha256=q6JRpmHAEdPWNnFSIqoPv8eBm0T574c3H5hp-M4LYlc,8027
|
|
@@ -49,22 +49,22 @@ vibe_surf/chrome_extension/icons/logo.png,sha256=wN3iMMGtLsURA70HABtj_3jiTk9aENA
|
|
|
49
49
|
vibe_surf/chrome_extension/scripts/api-client.js,sha256=XwKmH4lP5eAkBqAM8EcQezI0gcMZK8l0RQ3ESEamcn8,13318
|
|
50
50
|
vibe_surf/chrome_extension/scripts/main.js,sha256=WhmCGktQoSl7aaMl8a9ysJJiysAjf12bWGypMucCSVg,16913
|
|
51
51
|
vibe_surf/chrome_extension/scripts/markdown-it.min.js,sha256=gZ3xe0BdCJplNiHWTKrm6AGZydPy34jJKZqFIf-7hIw,102948
|
|
52
|
-
vibe_surf/chrome_extension/scripts/session-manager.js,sha256=
|
|
53
|
-
vibe_surf/chrome_extension/scripts/ui-manager.js,sha256=
|
|
52
|
+
vibe_surf/chrome_extension/scripts/session-manager.js,sha256=Bt5lLE6obU23nsU-EjXaD0zdse2p5pg5N_aR8zb5u_Q,19413
|
|
53
|
+
vibe_surf/chrome_extension/scripts/ui-manager.js,sha256=p91DIGpE5VS83T17Skuba827SAwC8IAxvCX-zrlAafw,142439
|
|
54
54
|
vibe_surf/chrome_extension/styles/animations.css,sha256=TLAet_xXBxCA-H36BWP4xBGBIVjbDdAj7Q6OPxPsbE8,7891
|
|
55
55
|
vibe_surf/chrome_extension/styles/components.css,sha256=7K6khbJcONVAArfeS4qmPBUJxvGGs20-eEw62bD_7VI,14741
|
|
56
56
|
vibe_surf/chrome_extension/styles/main.css,sha256=Z5cIBkE6zJTQ2wvyhWXEqIubsMiwvnZib1p1-GARdeI,48219
|
|
57
57
|
vibe_surf/chrome_extension/styles/settings.css,sha256=oKyLUiRsxW92f9VNkYwGkn7TNaXvjG0NPY2sxtYz5vo,20464
|
|
58
58
|
vibe_surf/controller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
59
|
vibe_surf/controller/file_system.py,sha256=a2fXCzAhaC41qvV_bMLi9c50FmcFYjQ0nszSdKOdDrI,2637
|
|
60
|
-
vibe_surf/controller/mcp_client.py,sha256=
|
|
61
|
-
vibe_surf/controller/
|
|
60
|
+
vibe_surf/controller/mcp_client.py,sha256=OjIxx49-XyNGk5wr58m2poT56DVpfkWrVaaeBVZqLY4,2415
|
|
61
|
+
vibe_surf/controller/vibesurf_tools.py,sha256=ynX-IWeFBIS2DzyYP1ZkFOM5nl5O2iTdB93HboOyxbs,26848
|
|
62
62
|
vibe_surf/controller/views.py,sha256=BaPlvcHTy5h-Lfr0OSgR_t6ynitgzNQF4-VUJJt8Hi0,1072
|
|
63
63
|
vibe_surf/llm/__init__.py,sha256=_vDVPo6STf343p1SgMQrF5023hicAx0g83pK2Gbk4Ek,601
|
|
64
64
|
vibe_surf/llm/openai_compatible.py,sha256=oY32VZF4oDS6ZG0h1WGtqAlWzdlximlJVTw8e8p5Zrg,10175
|
|
65
|
-
vibesurf-0.1.
|
|
66
|
-
vibesurf-0.1.
|
|
67
|
-
vibesurf-0.1.
|
|
68
|
-
vibesurf-0.1.
|
|
69
|
-
vibesurf-0.1.
|
|
70
|
-
vibesurf-0.1.
|
|
65
|
+
vibesurf-0.1.8.dist-info/licenses/LICENSE,sha256=czn6QYya0-jhLnStD9JqnMS-hwP5wRByipkrGTvoXLI,11355
|
|
66
|
+
vibesurf-0.1.8.dist-info/METADATA,sha256=RCQXq45W_9ZZzV8JIMsU45-LQjNZ2jNHFHFfwnw-mJM,4113
|
|
67
|
+
vibesurf-0.1.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
68
|
+
vibesurf-0.1.8.dist-info/entry_points.txt,sha256=UxqpvMocL-PR33S6vLF2OmXn-kVzM-DneMeZeHcPMM8,48
|
|
69
|
+
vibesurf-0.1.8.dist-info/top_level.txt,sha256=VPZGHqSb6EEqcJ4ZX6bHIuWfon5f6HXl3c7BYpbRqnY,10
|
|
70
|
+
vibesurf-0.1.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|