vibesurf 0.1.7__tar.gz → 0.1.9__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.9/.github/workflows/publish.yml +222 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/.gitignore +2 -1
- {vibesurf-0.1.7 → vibesurf-0.1.9}/PKG-INFO +8 -3
- {vibesurf-0.1.7 → vibesurf-0.1.9}/README.md +5 -1
- vibesurf-0.1.9/build-local.bat +120 -0
- vibesurf-0.1.9/build-local.sh +124 -0
- vibesurf-0.1.9/docs/EXECUTABLE_BUILD.md +197 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/pyproject.toml +2 -1
- {vibesurf-0.1.7 → vibesurf-0.1.9}/tests/test_agents.py +10 -12
- {vibesurf-0.1.7 → vibesurf-0.1.9}/tests/test_browser.py +5 -4
- {vibesurf-0.1.7 → vibesurf-0.1.9}/tests/test_controller.py +1 -2
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/_version.py +3 -3
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/browser_use_agent.py +48 -154
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/vibe_surf_agent.py +10 -9
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/shared_state.py +1 -1
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/utils/encryption.py +5 -35
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/agen_browser_profile.py +3 -4
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/agent_browser_session.py +115 -52
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/browser_manager.py +2 -2
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/utils.py +8 -15
- vibesurf-0.1.9/vibe_surf/browser/watchdogs/action_watchdog.py +105 -0
- vibesurf-0.1.9/vibe_surf/browser/watchdogs/dom_watchdog.py +282 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/cli.py +9 -2
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/controller/mcp_client.py +0 -4
- vibesurf-0.1.7/vibe_surf/controller/vibesurf_controller.py → vibesurf-0.1.9/vibe_surf/controller/vibesurf_tools.py +13 -48
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/PKG-INFO +8 -3
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/SOURCES.txt +6 -2
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/requires.txt +2 -1
- vibesurf-0.1.9/vibesurf.spec +145 -0
- vibesurf-0.1.7/.github/workflows/publish.yml +0 -98
- vibesurf-0.1.7/vibe_surf/browser/watchdogs/action_watchdog.py +0 -291
- vibesurf-0.1.7/vibe_surf/browser/watchdogs/dom_watchdog.py +0 -954
- {vibesurf-0.1.7 → vibesurf-0.1.9}/.env.example +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/.python-version +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/LICENSE +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/MANIFEST.in +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/docs/PYPI_SETUP.md +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/setup.cfg +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/tests/test_backend_api.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/prompts/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/prompts/vibe_surf_prompt.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/agents/report_writer_agent.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/activity.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/config.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/files.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/models.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/api/task.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/database/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/database/manager.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/database/models.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/database/queries.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/database/schemas.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/llm_config.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/main.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/migrations/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/migrations/init_db.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/migrations/seed_data.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/utils/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/backend/utils/llm_factory.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/browser/watchdogs/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/background.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/config.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/content.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/dev-reload.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/icons/convert-svg.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/icons/logo-preview.html +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/icons/logo.png +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/manifest.json +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/popup.html +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/scripts/api-client.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/scripts/main.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/scripts/markdown-it.min.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/scripts/session-manager.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/scripts/ui-manager.js +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/sidepanel.html +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/styles/animations.css +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/styles/components.css +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/styles/main.css +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/chrome_extension/styles/settings.css +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/controller/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/controller/file_system.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/controller/views.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/llm/__init__.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibe_surf/llm/openai_compatible.py +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/dependency_links.txt +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/entry_points.txt +0 -0
- {vibesurf-0.1.7 → vibesurf-0.1.9}/vibesurf.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
name: Build and Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published, edited]
|
|
6
|
+
workflow_dispatch: # Allow manual trigger
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
python-version: ['3.11', '3.12']
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
ref: 'main' # Always checkout main branch for latest code
|
|
19
|
+
fetch-depth: 0 # Full history for setuptools-scm
|
|
20
|
+
|
|
21
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: |
|
|
28
|
+
python -m pip install --upgrade pip
|
|
29
|
+
pip install build pytest
|
|
30
|
+
pip install -e .
|
|
31
|
+
|
|
32
|
+
- name: Test CLI import
|
|
33
|
+
run: |
|
|
34
|
+
python -c "import vibe_surf; print(f'VibeSurf version: {vibe_surf.__version__}')"
|
|
35
|
+
python -c "from vibe_surf.cli import main; print('CLI import successful')"
|
|
36
|
+
|
|
37
|
+
build-wheels:
|
|
38
|
+
needs: test
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v4
|
|
43
|
+
with:
|
|
44
|
+
ref: 'main' # Always checkout main branch for latest code
|
|
45
|
+
fetch-depth: 0 # Full history for setuptools-scm
|
|
46
|
+
|
|
47
|
+
- name: Set up Python
|
|
48
|
+
uses: actions/setup-python@v5
|
|
49
|
+
with:
|
|
50
|
+
python-version: '3.11'
|
|
51
|
+
|
|
52
|
+
- name: Install build dependencies
|
|
53
|
+
run: |
|
|
54
|
+
python -m pip install --upgrade pip
|
|
55
|
+
pip install build setuptools-scm[toml]
|
|
56
|
+
|
|
57
|
+
- name: Build package
|
|
58
|
+
run: python -m build
|
|
59
|
+
|
|
60
|
+
- name: Check built package
|
|
61
|
+
run: |
|
|
62
|
+
pip install twine
|
|
63
|
+
twine check dist/*
|
|
64
|
+
|
|
65
|
+
# Show package contents
|
|
66
|
+
echo "=== Built packages ==="
|
|
67
|
+
ls -la dist/
|
|
68
|
+
|
|
69
|
+
echo "=== Package info ==="
|
|
70
|
+
python -m pip install dist/*.whl
|
|
71
|
+
python -c "import vibe_surf; print(f'Installed version: {vibe_surf.__version__}')"
|
|
72
|
+
|
|
73
|
+
- name: Upload build artifacts
|
|
74
|
+
uses: actions/upload-artifact@v4
|
|
75
|
+
with:
|
|
76
|
+
name: dist
|
|
77
|
+
path: dist/
|
|
78
|
+
|
|
79
|
+
build-executables:
|
|
80
|
+
needs: test
|
|
81
|
+
strategy:
|
|
82
|
+
matrix:
|
|
83
|
+
include:
|
|
84
|
+
# Windows x64
|
|
85
|
+
- os: windows-latest
|
|
86
|
+
asset_name: vibesurf-windows-x64.exe
|
|
87
|
+
activate_cmd: .venv\Scripts\activate.bat
|
|
88
|
+
# macOS Intel (x86_64) - compatible with Apple Silicon via Rosetta 2
|
|
89
|
+
- os: macos-13
|
|
90
|
+
asset_name: vibesurf-macos-intel-x64
|
|
91
|
+
activate_cmd: source .venv/bin/activate
|
|
92
|
+
# macOS Apple Silicon (arm64) - native performance
|
|
93
|
+
- os: macos-14
|
|
94
|
+
asset_name: vibesurf-macos-apple-silicon
|
|
95
|
+
activate_cmd: source .venv/bin/activate
|
|
96
|
+
# Linux x64
|
|
97
|
+
- os: ubuntu-latest
|
|
98
|
+
asset_name: vibesurf-linux-x64
|
|
99
|
+
activate_cmd: source .venv/bin/activate
|
|
100
|
+
|
|
101
|
+
runs-on: ${{ matrix.os }}
|
|
102
|
+
|
|
103
|
+
steps:
|
|
104
|
+
- uses: actions/checkout@v4
|
|
105
|
+
with:
|
|
106
|
+
fetch-depth: 0
|
|
107
|
+
|
|
108
|
+
# Install uv (key step for consistent environment)
|
|
109
|
+
- name: Install uv
|
|
110
|
+
uses: astral-sh/setup-uv@v3
|
|
111
|
+
with:
|
|
112
|
+
version: "latest"
|
|
113
|
+
|
|
114
|
+
# Create uv environment and install current repository code
|
|
115
|
+
- name: Create uv environment
|
|
116
|
+
shell: bash
|
|
117
|
+
run: |
|
|
118
|
+
uv venv --python 3.12
|
|
119
|
+
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
120
|
+
.venv/Scripts/activate.bat
|
|
121
|
+
uv pip install -e .
|
|
122
|
+
uv pip install pyinstaller
|
|
123
|
+
else
|
|
124
|
+
source .venv/bin/activate
|
|
125
|
+
uv pip install -e .
|
|
126
|
+
uv pip install pyinstaller
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# Verify environment
|
|
130
|
+
- name: Verify environment
|
|
131
|
+
shell: bash
|
|
132
|
+
run: |
|
|
133
|
+
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
134
|
+
.venv/Scripts/activate.bat
|
|
135
|
+
python --version
|
|
136
|
+
python -c "from vibe_surf.cli import main; print('CLI available')"
|
|
137
|
+
else
|
|
138
|
+
source .venv/bin/activate
|
|
139
|
+
python --version
|
|
140
|
+
which python
|
|
141
|
+
python -c "from vibe_surf.cli import main; print('CLI available')"
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Build executable using uv environment
|
|
145
|
+
- name: Build executable with uv environment
|
|
146
|
+
shell: bash
|
|
147
|
+
run: |
|
|
148
|
+
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
149
|
+
.venv/Scripts/activate.bat
|
|
150
|
+
pyinstaller vibesurf.spec --clean --noconfirm
|
|
151
|
+
else
|
|
152
|
+
source .venv/bin/activate
|
|
153
|
+
pyinstaller vibesurf.spec --clean --noconfirm
|
|
154
|
+
fi
|
|
155
|
+
|
|
156
|
+
- name: Prepare executable
|
|
157
|
+
shell: bash
|
|
158
|
+
run: |
|
|
159
|
+
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
160
|
+
mv dist/vibesurf.exe dist/${{ matrix.asset_name }}
|
|
161
|
+
else
|
|
162
|
+
mv dist/vibesurf dist/${{ matrix.asset_name }}
|
|
163
|
+
chmod +x dist/${{ matrix.asset_name }}
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
- name: Test executable
|
|
167
|
+
shell: bash
|
|
168
|
+
run: |
|
|
169
|
+
# Basic test to ensure executable runs
|
|
170
|
+
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
171
|
+
echo "Testing Windows executable..."
|
|
172
|
+
# Simple existence check for Windows
|
|
173
|
+
ls -la dist/${{ matrix.asset_name }}
|
|
174
|
+
else
|
|
175
|
+
echo "Testing Unix executable..."
|
|
176
|
+
./dist/${{ matrix.asset_name }} --help || echo "Basic test completed"
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
- name: Upload executable
|
|
180
|
+
uses: actions/upload-artifact@v4
|
|
181
|
+
with:
|
|
182
|
+
name: ${{ matrix.asset_name }}
|
|
183
|
+
path: dist/${{ matrix.asset_name }}
|
|
184
|
+
|
|
185
|
+
publish-pypi:
|
|
186
|
+
needs: [test, build-wheels]
|
|
187
|
+
runs-on: ubuntu-latest
|
|
188
|
+
environment: release
|
|
189
|
+
permissions:
|
|
190
|
+
id-token: write # Required for trusted publishing
|
|
191
|
+
|
|
192
|
+
steps:
|
|
193
|
+
- name: Download build artifacts
|
|
194
|
+
uses: actions/download-artifact@v4
|
|
195
|
+
with:
|
|
196
|
+
name: dist
|
|
197
|
+
path: dist/
|
|
198
|
+
|
|
199
|
+
- name: Publish to PyPI
|
|
200
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
201
|
+
with:
|
|
202
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
203
|
+
# Use the following line if you want to use trusted publishing instead
|
|
204
|
+
# skip-existing: true
|
|
205
|
+
|
|
206
|
+
publish-executables:
|
|
207
|
+
needs: [test, build-executables]
|
|
208
|
+
runs-on: ubuntu-latest
|
|
209
|
+
if: github.event_name == 'release'
|
|
210
|
+
|
|
211
|
+
steps:
|
|
212
|
+
- name: Download all artifacts
|
|
213
|
+
uses: actions/download-artifact@v4
|
|
214
|
+
|
|
215
|
+
- name: Upload executables to release
|
|
216
|
+
uses: softprops/action-gh-release@v1
|
|
217
|
+
with:
|
|
218
|
+
files: |
|
|
219
|
+
vibesurf-windows-x64.exe/vibesurf-windows-x64.exe
|
|
220
|
+
vibesurf-macos-intel-x64/vibesurf-macos-intel-x64
|
|
221
|
+
vibesurf-macos-apple-silicon/vibesurf-macos-apple-silicon
|
|
222
|
+
vibesurf-linux-x64/vibesurf-linux-x64
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibesurf
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9
|
|
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
|
|
|
@@ -34,7 +34,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
|
|
|
34
34
|
### Step 2: Setup and Install
|
|
35
35
|
```bash
|
|
36
36
|
uv venv --python 3.12
|
|
37
|
-
uv pip install vibesurf
|
|
37
|
+
uv pip install vibesurf -U
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### Step 3: Launch
|
|
@@ -44,8 +44,12 @@ vibesurf
|
|
|
44
44
|
|
|
45
45
|
## 🎬 Demo
|
|
46
46
|
|
|
47
|
+
### How to use?
|
|
47
48
|
<video src="https://github.com/user-attachments/assets/0a4650c0-c4ed-423e-9e16-7889e9f9816d" controls="controls">Your browser does not support playing this video!</video>
|
|
48
49
|
|
|
50
|
+
### Dozens of agent running in on browser
|
|
51
|
+
<video src="https://github.com/user-attachments/assets/9c461a6e-5d97-4335-ba09-59e8ec4ad47b" controls="controls">Your browser does not support playing this video!</video>
|
|
52
|
+
|
|
49
53
|
|
|
50
54
|
## 📝 License
|
|
51
55
|
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
:: Local build script for Windows
|
|
3
|
+
:: This script creates a uv environment and builds a standalone executable
|
|
4
|
+
|
|
5
|
+
setlocal enabledelayedexpansion
|
|
6
|
+
|
|
7
|
+
echo 🚀 VibeSurf Local Build Script for Windows
|
|
8
|
+
echo ==========================================
|
|
9
|
+
|
|
10
|
+
:: Check if uv is installed
|
|
11
|
+
where uv >nul 2>nul
|
|
12
|
+
if %ERRORLEVEL% neq 0 (
|
|
13
|
+
echo [ERROR] uv is not installed. Please install it first:
|
|
14
|
+
echo powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
15
|
+
exit /b 1
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
echo [SUCCESS] uv is installed
|
|
19
|
+
|
|
20
|
+
:: Use dedicated build environment directory
|
|
21
|
+
set BUILD_ENV=.build-env
|
|
22
|
+
|
|
23
|
+
:: Clean up existing build environment if it exists
|
|
24
|
+
if exist "%BUILD_ENV%" (
|
|
25
|
+
echo [WARNING] Removing existing build environment directory
|
|
26
|
+
rmdir /s /q "%BUILD_ENV%"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
:: Step 1: Create dedicated build environment
|
|
30
|
+
echo [INFO] Creating dedicated build environment with Python 3.12...
|
|
31
|
+
uv venv %BUILD_ENV% --python 3.12
|
|
32
|
+
if %ERRORLEVEL% neq 0 (
|
|
33
|
+
echo [ERROR] Failed to create build environment
|
|
34
|
+
exit /b 1
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
:: Step 2: Activate build environment and install dependencies
|
|
38
|
+
echo [INFO] Activating build environment and installing dependencies...
|
|
39
|
+
call %BUILD_ENV%\Scripts\activate.bat
|
|
40
|
+
|
|
41
|
+
:: Verify Python version
|
|
42
|
+
python --version
|
|
43
|
+
if %ERRORLEVEL% neq 0 (
|
|
44
|
+
echo [ERROR] Failed to activate Python environment
|
|
45
|
+
exit /b 1
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
:: Install local VibeSurf and PyInstaller
|
|
49
|
+
echo [INFO] Installing local vibesurf in development mode and pyinstaller...
|
|
50
|
+
uv pip install -e .
|
|
51
|
+
if %ERRORLEVEL% neq 0 (
|
|
52
|
+
echo [ERROR] Failed to install local vibesurf
|
|
53
|
+
exit /b 1
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
uv pip install pyinstaller
|
|
57
|
+
if %ERRORLEVEL% neq 0 (
|
|
58
|
+
echo [ERROR] Failed to install pyinstaller
|
|
59
|
+
exit /b 1
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
:: Verify installation
|
|
63
|
+
echo [INFO] Verifying installation...
|
|
64
|
+
python -c "import vibe_surf; print(f'VibeSurf version: {vibe_surf.__version__}')"
|
|
65
|
+
if %ERRORLEVEL% neq 0 (
|
|
66
|
+
echo [ERROR] Failed to import vibe_surf
|
|
67
|
+
exit /b 1
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
python -c "from vibe_surf.cli import main; print('CLI import successful')"
|
|
71
|
+
if %ERRORLEVEL% neq 0 (
|
|
72
|
+
echo [ERROR] Failed to import CLI
|
|
73
|
+
exit /b 1
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
:: Step 3: Build executable
|
|
77
|
+
echo [INFO] Building executable with PyInstaller...
|
|
78
|
+
if not exist "vibesurf.spec" (
|
|
79
|
+
echo [ERROR] vibesurf.spec file not found!
|
|
80
|
+
exit /b 1
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
pyinstaller vibesurf.spec --clean --noconfirm
|
|
84
|
+
if %ERRORLEVEL% neq 0 (
|
|
85
|
+
echo [ERROR] PyInstaller build failed
|
|
86
|
+
exit /b 1
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
:: Step 4: Test executable
|
|
90
|
+
if exist "dist\vibesurf.exe" (
|
|
91
|
+
echo [SUCCESS] Executable built successfully!
|
|
92
|
+
|
|
93
|
+
echo [INFO] Testing executable...
|
|
94
|
+
dist\vibesurf.exe --help >nul 2>&1
|
|
95
|
+
if %ERRORLEVEL% equ 0 (
|
|
96
|
+
echo [SUCCESS] Executable test passed!
|
|
97
|
+
) else (
|
|
98
|
+
echo [WARNING] Executable test failed, but this might be expected for CLI apps
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
:: Show file info
|
|
102
|
+
echo.
|
|
103
|
+
echo 📊 Executable Information:
|
|
104
|
+
echo =========================
|
|
105
|
+
dir /q dist\vibesurf.exe
|
|
106
|
+
|
|
107
|
+
echo.
|
|
108
|
+
echo [SUCCESS] 🎉 Build completed successfully!
|
|
109
|
+
echo.
|
|
110
|
+
echo 📁 Your executable is located at: .\dist\vibesurf.exe
|
|
111
|
+
echo 🚀 To run: .\dist\vibesurf.exe
|
|
112
|
+
echo.
|
|
113
|
+
|
|
114
|
+
) else (
|
|
115
|
+
echo [ERROR] Build failed - executable not found
|
|
116
|
+
exit /b 1
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
echo Press any key to exit...
|
|
120
|
+
pause >nul
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Local build script for Unix-like systems (Linux/macOS)
|
|
3
|
+
# This script creates a uv environment and builds a standalone executable
|
|
4
|
+
|
|
5
|
+
set -e # Exit on any error
|
|
6
|
+
|
|
7
|
+
echo "🚀 VibeSurf Local Build Script"
|
|
8
|
+
echo "=============================="
|
|
9
|
+
|
|
10
|
+
# Colors for output
|
|
11
|
+
RED='\033[0;31m'
|
|
12
|
+
GREEN='\033[0;32m'
|
|
13
|
+
YELLOW='\033[1;33m'
|
|
14
|
+
CYAN='\033[0;36m'
|
|
15
|
+
NC='\033[0m' # No Color
|
|
16
|
+
|
|
17
|
+
# Function to print colored output
|
|
18
|
+
print_status() {
|
|
19
|
+
echo -e "${CYAN}[INFO]${NC} $1"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
print_success() {
|
|
23
|
+
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
print_warning() {
|
|
27
|
+
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
print_error() {
|
|
31
|
+
echo -e "${RED}[ERROR]${NC} $1"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# Check if uv is installed
|
|
35
|
+
if ! command -v uv &> /dev/null; then
|
|
36
|
+
print_error "uv is not installed. Please install it first:"
|
|
37
|
+
echo "curl -LsSf https://astral.sh/uv/install.sh | sh"
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
print_success "uv is installed"
|
|
42
|
+
|
|
43
|
+
# Use dedicated build environment directory
|
|
44
|
+
BUILD_ENV=".build-env"
|
|
45
|
+
|
|
46
|
+
# Clean up existing build environment if it exists
|
|
47
|
+
if [ -d "$BUILD_ENV" ]; then
|
|
48
|
+
print_warning "Removing existing build environment directory"
|
|
49
|
+
rm -rf "$BUILD_ENV"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Step 1: Create dedicated build environment
|
|
53
|
+
print_status "Creating dedicated build environment with Python 3.12..."
|
|
54
|
+
uv venv "$BUILD_ENV" --python 3.12
|
|
55
|
+
|
|
56
|
+
# Step 2: Activate build environment and install dependencies
|
|
57
|
+
print_status "Activating build environment and installing dependencies..."
|
|
58
|
+
source "$BUILD_ENV/bin/activate"
|
|
59
|
+
|
|
60
|
+
# Verify Python version
|
|
61
|
+
PYTHON_VERSION=$(python --version)
|
|
62
|
+
print_success "Using Python: $PYTHON_VERSION"
|
|
63
|
+
|
|
64
|
+
# Install local VibeSurf and PyInstaller
|
|
65
|
+
print_status "Installing local vibesurf in development mode and pyinstaller..."
|
|
66
|
+
uv pip install -e .
|
|
67
|
+
uv pip install pyinstaller
|
|
68
|
+
|
|
69
|
+
# Verify installation
|
|
70
|
+
print_status "Verifying installation..."
|
|
71
|
+
python -c "import vibe_surf; print(f'VibeSurf version: {vibe_surf.__version__}')" || {
|
|
72
|
+
print_error "Failed to import vibe_surf"
|
|
73
|
+
exit 1
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
python -c "from vibe_surf.cli import main; print('CLI import successful')" || {
|
|
77
|
+
print_error "Failed to import CLI"
|
|
78
|
+
exit 1
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# Step 3: Build executable
|
|
82
|
+
print_status "Building executable with PyInstaller..."
|
|
83
|
+
if [ ! -f "vibesurf.spec" ]; then
|
|
84
|
+
print_error "vibesurf.spec file not found!"
|
|
85
|
+
exit 1
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
pyinstaller vibesurf.spec --clean --noconfirm
|
|
89
|
+
|
|
90
|
+
# Step 4: Test executable
|
|
91
|
+
if [ -f "dist/vibesurf" ]; then
|
|
92
|
+
print_success "Executable built successfully!"
|
|
93
|
+
|
|
94
|
+
# Make executable and test
|
|
95
|
+
chmod +x dist/vibesurf
|
|
96
|
+
|
|
97
|
+
print_status "Testing executable..."
|
|
98
|
+
./dist/vibesurf --help > /dev/null 2>&1 && {
|
|
99
|
+
print_success "Executable test passed!"
|
|
100
|
+
} || {
|
|
101
|
+
print_warning "Executable test failed, but this might be expected for CLI apps"
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
# Show file info
|
|
105
|
+
echo ""
|
|
106
|
+
echo "📊 Executable Information:"
|
|
107
|
+
echo "========================="
|
|
108
|
+
ls -lh dist/vibesurf
|
|
109
|
+
|
|
110
|
+
if command -v file &> /dev/null; then
|
|
111
|
+
file dist/vibesurf
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
echo ""
|
|
115
|
+
print_success "🎉 Build completed successfully!"
|
|
116
|
+
echo ""
|
|
117
|
+
echo "📁 Your executable is located at: ./dist/vibesurf"
|
|
118
|
+
echo "🚀 To run: ./dist/vibesurf"
|
|
119
|
+
echo ""
|
|
120
|
+
|
|
121
|
+
else
|
|
122
|
+
print_error "Build failed - executable not found"
|
|
123
|
+
exit 1
|
|
124
|
+
fi
|