vibesurf 0.1.9a0__tar.gz → 0.1.9a1__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.9a0 → vibesurf-0.1.9a1}/.github/workflows/publish.yml +92 -4
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/.gitignore +2 -1
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/PKG-INFO +2 -2
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/build-local.sh +64 -31
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/_version.py +3 -3
- vibesurf-0.1.9a1/vibe_surf/chrome_extension/icons/logo.icns +0 -0
- vibesurf-0.1.9a1/vibe_surf/chrome_extension/icons/logo.png +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/PKG-INFO +2 -2
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/SOURCES.txt +2 -0
- vibesurf-0.1.9a1/vibesurf.spec +242 -0
- vibesurf-0.1.9a0/vibe_surf/chrome_extension/icons/logo.png +0 -0
- vibesurf-0.1.9a0/vibesurf.spec +0 -145
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/.env.example +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/.python-version +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/LICENSE +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/MANIFEST.in +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/README.md +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/build-local.bat +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/docs/EXECUTABLE_BUILD.md +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/docs/PYPI_SETUP.md +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/pyproject.toml +1 -1
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/setup.cfg +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/tests/test_agents.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/tests/test_backend_api.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/tests/test_browser.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/tests/test_controller.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/browser_use_agent.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/prompts/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/prompts/vibe_surf_prompt.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/report_writer_agent.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/agents/vibe_surf_agent.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/activity.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/config.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/files.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/models.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/api/task.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/database/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/database/manager.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/database/models.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/database/queries.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/database/schemas.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/llm_config.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/main.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/migrations/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/migrations/init_db.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/migrations/seed_data.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/shared_state.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/utils/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/utils/encryption.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/backend/utils/llm_factory.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/agen_browser_profile.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/agent_browser_session.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/browser_manager.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/utils.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/watchdogs/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/watchdogs/action_watchdog.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/browser/watchdogs/dom_watchdog.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/background.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/config.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/content.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/dev-reload.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/icons/convert-svg.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/icons/logo-preview.html +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/manifest.json +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/popup.html +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/scripts/api-client.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/scripts/main.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/scripts/markdown-it.min.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/scripts/session-manager.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/scripts/ui-manager.js +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/sidepanel.html +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/styles/animations.css +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/styles/components.css +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/styles/main.css +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/chrome_extension/styles/settings.css +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/cli.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/controller/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/controller/file_system.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/controller/mcp_client.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/controller/vibesurf_tools.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/controller/views.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/llm/__init__.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibe_surf/llm/openai_compatible.py +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/dependency_links.txt +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/entry_points.txt +0 -0
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/requires.txt +1 -1
- {vibesurf-0.1.9a0 → vibesurf-0.1.9a1}/vibesurf.egg-info/top_level.txt +0 -0
|
@@ -165,11 +165,55 @@ jobs:
|
|
|
165
165
|
shell: bash
|
|
166
166
|
run: |
|
|
167
167
|
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
168
|
+
# Windows: rename .exe file
|
|
168
169
|
mv dist/vibesurf.exe dist/${{ matrix.asset_name }}
|
|
170
|
+
elif [[ "$RUNNER_OS" == "macOS" ]]; then
|
|
171
|
+
# macOS: handle .app bundle
|
|
172
|
+
if [ -d "dist/VibeSurf.app" ]; then
|
|
173
|
+
echo "Found macOS .app bundle"
|
|
174
|
+
|
|
175
|
+
# Apply ad-hoc code signing FIRST, before creating archive
|
|
176
|
+
echo "Adding ad-hoc code signature to .app bundle..."
|
|
177
|
+
codesign --force --deep --sign - dist/VibeSurf.app || echo "Code signing failed, continuing..."
|
|
178
|
+
|
|
179
|
+
# Remove quarantine attribute to help with Gatekeeper
|
|
180
|
+
xattr -cr dist/VibeSurf.app 2>/dev/null || echo "No quarantine attributes to remove"
|
|
181
|
+
|
|
182
|
+
# Verify signing
|
|
183
|
+
echo "Verifying code signature..."
|
|
184
|
+
codesign --verify --deep dist/VibeSurf.app && echo "✅ Signature verified" || echo "⚠️ Signature verification failed"
|
|
185
|
+
|
|
186
|
+
# Now create tar.gz archive of the SIGNED .app bundle
|
|
187
|
+
echo "Creating archive with signed .app bundle..."
|
|
188
|
+
cd dist
|
|
189
|
+
tar -czf ${{ matrix.asset_name }}.tar.gz VibeSurf.app
|
|
190
|
+
|
|
191
|
+
# Verify archive was created
|
|
192
|
+
if [ -f "${{ matrix.asset_name }}.tar.gz" ]; then
|
|
193
|
+
echo "✅ Archive created successfully: ${{ matrix.asset_name }}.tar.gz"
|
|
194
|
+
ls -lh ${{ matrix.asset_name }}.tar.gz
|
|
195
|
+
mv ${{ matrix.asset_name }}.tar.gz ${{ matrix.asset_name }}
|
|
196
|
+
else
|
|
197
|
+
echo "❌ Failed to create archive"
|
|
198
|
+
exit 1
|
|
199
|
+
fi
|
|
200
|
+
cd ..
|
|
201
|
+
else
|
|
202
|
+
# Fallback: single executable
|
|
203
|
+
echo "No .app bundle found, using single executable"
|
|
204
|
+
mv dist/vibesurf dist/${{ matrix.asset_name }}
|
|
205
|
+
chmod +x dist/${{ matrix.asset_name }}
|
|
206
|
+
codesign --force --deep --sign - dist/${{ matrix.asset_name }} || echo "Code signing failed, continuing..."
|
|
207
|
+
fi
|
|
169
208
|
else
|
|
209
|
+
# Linux: single executable
|
|
170
210
|
mv dist/vibesurf dist/${{ matrix.asset_name }}
|
|
171
211
|
chmod +x dist/${{ matrix.asset_name }}
|
|
172
212
|
fi
|
|
213
|
+
|
|
214
|
+
# Show final result
|
|
215
|
+
echo "=== Final executable/archive ==="
|
|
216
|
+
ls -lh dist/${{ matrix.asset_name }}
|
|
173
217
|
|
|
174
218
|
- name: Test executable
|
|
175
219
|
shell: bash
|
|
@@ -177,10 +221,20 @@ jobs:
|
|
|
177
221
|
# Basic test to ensure executable runs
|
|
178
222
|
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
|
179
223
|
echo "Testing Windows executable..."
|
|
180
|
-
# Simple existence check for Windows
|
|
181
224
|
ls -la dist/${{ matrix.asset_name }}
|
|
225
|
+
elif [[ "$RUNNER_OS" == "macOS" ]]; then
|
|
226
|
+
echo "Testing macOS .app bundle..."
|
|
227
|
+
if [ -d "dist/VibeSurf.app" ]; then
|
|
228
|
+
echo "✅ VibeSurf.app bundle exists"
|
|
229
|
+
ls -la dist/VibeSurf.app/Contents/MacOS/
|
|
230
|
+
# Test the executable inside the bundle
|
|
231
|
+
./dist/VibeSurf.app/Contents/MacOS/vibesurf --help || echo "Basic app test completed"
|
|
232
|
+
else
|
|
233
|
+
echo "Testing macOS executable..."
|
|
234
|
+
./dist/${{ matrix.asset_name }} --help || echo "Basic test completed"
|
|
235
|
+
fi
|
|
182
236
|
else
|
|
183
|
-
echo "Testing
|
|
237
|
+
echo "Testing Linux executable..."
|
|
184
238
|
./dist/${{ matrix.asset_name }} --help || echo "Basic test completed"
|
|
185
239
|
fi
|
|
186
240
|
|
|
@@ -189,6 +243,7 @@ jobs:
|
|
|
189
243
|
with:
|
|
190
244
|
name: ${{ matrix.asset_name }}
|
|
191
245
|
path: dist/${{ matrix.asset_name }}
|
|
246
|
+
retention-days: 90
|
|
192
247
|
|
|
193
248
|
publish-pypi:
|
|
194
249
|
needs: [test, build-wheels]
|
|
@@ -208,13 +263,17 @@ jobs:
|
|
|
208
263
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
209
264
|
with:
|
|
210
265
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
266
|
+
skip-existing: true # Skip if version already exists on PyPI
|
|
211
267
|
# Use the following line if you want to use trusted publishing instead
|
|
212
|
-
#
|
|
268
|
+
# trusted-publishing: true
|
|
213
269
|
|
|
214
270
|
publish-executables:
|
|
215
271
|
needs: [test, build-executables]
|
|
216
272
|
runs-on: ubuntu-latest
|
|
217
273
|
if: github.event_name == 'release'
|
|
274
|
+
permissions:
|
|
275
|
+
contents: write # Required for uploading to GitHub releases
|
|
276
|
+
actions: read # Required for downloading artifacts
|
|
218
277
|
|
|
219
278
|
steps:
|
|
220
279
|
- name: Download all artifacts
|
|
@@ -227,4 +286,33 @@ jobs:
|
|
|
227
286
|
vibesurf-windows-x64.exe/vibesurf-windows-x64.exe
|
|
228
287
|
vibesurf-macos-intel-x64/vibesurf-macos-intel-x64
|
|
229
288
|
vibesurf-macos-apple-silicon/vibesurf-macos-apple-silicon
|
|
230
|
-
vibesurf-linux-x64/vibesurf-linux-x64
|
|
289
|
+
vibesurf-linux-x64/vibesurf-linux-x64
|
|
290
|
+
body: |
|
|
291
|
+
## 📦 Download Instructions
|
|
292
|
+
|
|
293
|
+
### 🪟 Windows
|
|
294
|
+
- Download `vibesurf-windows-x64.exe`
|
|
295
|
+
- Run directly or add to PATH
|
|
296
|
+
|
|
297
|
+
### 🍎 macOS (with proper .app bundle)
|
|
298
|
+
- **Intel Macs**: Download `vibesurf-macos-intel-x64`
|
|
299
|
+
- **Apple Silicon**: Download `vibesurf-macos-apple-silicon`
|
|
300
|
+
- Extract: `tar -xzf vibesurf-macos-*.tar.gz`
|
|
301
|
+
- Open: Double-click `VibeSurf.app` in Finder
|
|
302
|
+
- **If blocked**: Right-click → "Open" → "Open" in dialog
|
|
303
|
+
- **Alternative**: System Preferences → Security & Privacy → "Open Anyway"
|
|
304
|
+
|
|
305
|
+
✅ **Features**:
|
|
306
|
+
- Proper ICNS icon
|
|
307
|
+
- No terminal window (windowed mode)
|
|
308
|
+
- Ad-hoc signed (reduces warnings)
|
|
309
|
+
- Standard macOS .app bundle
|
|
310
|
+
|
|
311
|
+
### 🐧 Linux
|
|
312
|
+
- Download `vibesurf-linux-x64`
|
|
313
|
+
- Make executable: `chmod +x vibesurf-linux-x64`
|
|
314
|
+
- Run: `./vibesurf-linux-x64`
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
**Note**: All builds include automatic platform detection and appropriate configurations.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibesurf
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9a1
|
|
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,6 @@ 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.7.1
|
|
30
29
|
Requires-Dist: langgraph>=0.6.4
|
|
31
30
|
Requires-Dist: fastapi>=0.104.0
|
|
32
31
|
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
@@ -38,6 +37,7 @@ Requires-Dist: aiosqlite>=0.21.0
|
|
|
38
37
|
Requires-Dist: rich>=13.0.0
|
|
39
38
|
Requires-Dist: greenlet>=3.2.4
|
|
40
39
|
Requires-Dist: getmac>=0.9.5
|
|
40
|
+
Requires-Dist: browser-use==0.7.1
|
|
41
41
|
Dynamic: license-file
|
|
42
42
|
|
|
43
43
|
# VibeSurf: A powerful browser assistant for vibe surfing
|
|
@@ -87,38 +87,71 @@ fi
|
|
|
87
87
|
|
|
88
88
|
pyinstaller vibesurf.spec --clean --noconfirm
|
|
89
89
|
|
|
90
|
-
# Step 4:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
90
|
+
# Step 4: Check build results and handle platform-specific post-processing
|
|
91
|
+
PLATFORM=$(uname -s)
|
|
92
|
+
print_status "Detected platform: $PLATFORM"
|
|
93
|
+
|
|
94
|
+
if [ "$PLATFORM" = "Darwin" ]; then
|
|
95
|
+
# macOS - check for .app bundle
|
|
96
|
+
if [ -d "dist/VibeSurf.app" ]; then
|
|
97
|
+
print_success "macOS .app bundle built successfully!"
|
|
98
|
+
|
|
99
|
+
# Run macOS post-build script if it exists
|
|
100
|
+
if [ -f "macos-post-build.sh" ]; then
|
|
101
|
+
print_status "Running macOS post-build processing..."
|
|
102
|
+
chmod +x macos-post-build.sh
|
|
103
|
+
./macos-post-build.sh
|
|
104
|
+
else
|
|
105
|
+
print_warning "macos-post-build.sh not found - skipping post-processing"
|
|
106
|
+
echo ""
|
|
107
|
+
echo "📊 App Bundle Information:"
|
|
108
|
+
echo "========================="
|
|
109
|
+
ls -lah dist/VibeSurf.app
|
|
110
|
+
echo ""
|
|
111
|
+
print_success "🎉 Build completed successfully!"
|
|
112
|
+
echo "📁 Your app is located at: ./dist/VibeSurf.app"
|
|
113
|
+
echo "🚀 To run: open ./dist/VibeSurf.app"
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
else
|
|
117
|
+
print_error "Build failed - VibeSurf.app bundle not found"
|
|
118
|
+
exit 1
|
|
112
119
|
fi
|
|
113
120
|
|
|
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
121
|
else
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
# Linux/Unix - check for regular executable
|
|
123
|
+
if [ -f "dist/vibesurf" ]; then
|
|
124
|
+
print_success "Executable built successfully!"
|
|
125
|
+
|
|
126
|
+
# Make executable and test
|
|
127
|
+
chmod +x dist/vibesurf
|
|
128
|
+
|
|
129
|
+
print_status "Testing executable..."
|
|
130
|
+
./dist/vibesurf --help > /dev/null 2>&1 && {
|
|
131
|
+
print_success "Executable test passed!"
|
|
132
|
+
} || {
|
|
133
|
+
print_warning "Executable test failed, but this might be expected for CLI apps"
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# Show file info
|
|
137
|
+
echo ""
|
|
138
|
+
echo "📊 Executable Information:"
|
|
139
|
+
echo "========================="
|
|
140
|
+
ls -lh dist/vibesurf
|
|
141
|
+
|
|
142
|
+
if command -v file &> /dev/null; then
|
|
143
|
+
file dist/vibesurf
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
echo ""
|
|
147
|
+
print_success "🎉 Build completed successfully!"
|
|
148
|
+
echo ""
|
|
149
|
+
echo "📁 Your executable is located at: ./dist/vibesurf"
|
|
150
|
+
echo "🚀 To run: ./dist/vibesurf"
|
|
151
|
+
echo ""
|
|
152
|
+
|
|
153
|
+
else
|
|
154
|
+
print_error "Build failed - executable not found"
|
|
155
|
+
exit 1
|
|
156
|
+
fi
|
|
124
157
|
fi
|
|
@@ -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, 9, '
|
|
31
|
+
__version__ = version = '0.1.9a1'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 9, 'a1')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g3125abb4c'
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibesurf
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9a1
|
|
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,6 @@ 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.7.1
|
|
30
29
|
Requires-Dist: langgraph>=0.6.4
|
|
31
30
|
Requires-Dist: fastapi>=0.104.0
|
|
32
31
|
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
@@ -38,6 +37,7 @@ Requires-Dist: aiosqlite>=0.21.0
|
|
|
38
37
|
Requires-Dist: rich>=13.0.0
|
|
39
38
|
Requires-Dist: greenlet>=3.2.4
|
|
40
39
|
Requires-Dist: getmac>=0.9.5
|
|
40
|
+
Requires-Dist: browser-use==0.7.1
|
|
41
41
|
Dynamic: license-file
|
|
42
42
|
|
|
43
43
|
# VibeSurf: A powerful browser assistant for vibe surfing
|
|
@@ -55,6 +55,7 @@ vibesurf.spec
|
|
|
55
55
|
./vibe_surf/chrome_extension/sidepanel.html
|
|
56
56
|
./vibe_surf/chrome_extension/icons/convert-svg.js
|
|
57
57
|
./vibe_surf/chrome_extension/icons/logo-preview.html
|
|
58
|
+
./vibe_surf/chrome_extension/icons/logo.icns
|
|
58
59
|
./vibe_surf/chrome_extension/icons/logo.png
|
|
59
60
|
./vibe_surf/chrome_extension/scripts/api-client.js
|
|
60
61
|
./vibe_surf/chrome_extension/scripts/main.js
|
|
@@ -125,6 +126,7 @@ vibe_surf/chrome_extension/popup.html
|
|
|
125
126
|
vibe_surf/chrome_extension/sidepanel.html
|
|
126
127
|
vibe_surf/chrome_extension/icons/convert-svg.js
|
|
127
128
|
vibe_surf/chrome_extension/icons/logo-preview.html
|
|
129
|
+
vibe_surf/chrome_extension/icons/logo.icns
|
|
128
130
|
vibe_surf/chrome_extension/icons/logo.png
|
|
129
131
|
vibe_surf/chrome_extension/scripts/api-client.js
|
|
130
132
|
vibe_surf/chrome_extension/scripts/main.js
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# -*- mode: python ; coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import sys
|
|
5
|
+
import platform
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
# Ensure using current environment's Python
|
|
9
|
+
python_path = sys.executable
|
|
10
|
+
print(f"Using Python: {python_path}")
|
|
11
|
+
|
|
12
|
+
block_cipher = None
|
|
13
|
+
|
|
14
|
+
# Dynamically find vibe_surf installation location
|
|
15
|
+
try:
|
|
16
|
+
import vibe_surf
|
|
17
|
+
vibe_surf_path = Path(vibe_surf.__file__).parent
|
|
18
|
+
print(f"VibeSurf package location: {vibe_surf_path}")
|
|
19
|
+
cli_path = vibe_surf_path / 'cli.py'
|
|
20
|
+
except ImportError:
|
|
21
|
+
# Fallback to relative path (development environment)
|
|
22
|
+
vibe_surf_path = Path.cwd() / 'vibe_surf'
|
|
23
|
+
cli_path = vibe_surf_path / 'cli.py'
|
|
24
|
+
print(f"Using development path: {vibe_surf_path}")
|
|
25
|
+
|
|
26
|
+
# Dynamically find browser_use installation location for prompt templates
|
|
27
|
+
try:
|
|
28
|
+
import browser_use
|
|
29
|
+
browser_use_path = Path(browser_use.__file__).parent
|
|
30
|
+
print(f"browser_use package location: {browser_use_path}")
|
|
31
|
+
except ImportError:
|
|
32
|
+
print("WARNING: browser_use not found, system prompts may not work in executable")
|
|
33
|
+
browser_use_path = None
|
|
34
|
+
|
|
35
|
+
# Check if CLI file exists
|
|
36
|
+
if not cli_path.exists():
|
|
37
|
+
print(f"ERROR: CLI file not found at {cli_path}")
|
|
38
|
+
print("Please ensure vibe_surf is properly installed or run from project directory")
|
|
39
|
+
sys.exit(1)
|
|
40
|
+
|
|
41
|
+
# Platform detection and configuration
|
|
42
|
+
current_platform = platform.system()
|
|
43
|
+
print(f"Building for platform: {current_platform}")
|
|
44
|
+
|
|
45
|
+
# Configure icon and console mode based on platform
|
|
46
|
+
if current_platform == "Darwin": # macOS
|
|
47
|
+
icon_file = vibe_surf_path / 'chrome_extension' / 'icons' / 'logo.icns'
|
|
48
|
+
console_mode = False # Windowed mode for macOS (equivalent to -w flag)
|
|
49
|
+
print(f"macOS detected - using ICNS icon and windowed mode")
|
|
50
|
+
elif current_platform == "Windows":
|
|
51
|
+
# Windows can use ICO or PNG, but prefer ICO if available
|
|
52
|
+
ico_file = vibe_surf_path / 'chrome_extension' / 'icons' / 'logo.ico'
|
|
53
|
+
if ico_file.exists():
|
|
54
|
+
icon_file = ico_file
|
|
55
|
+
print(f"Windows detected - using ICO icon")
|
|
56
|
+
else:
|
|
57
|
+
icon_file = vibe_surf_path / 'chrome_extension' / 'icons' / 'logo.png'
|
|
58
|
+
print(f"Windows detected - using PNG icon (ICO not found)")
|
|
59
|
+
console_mode = True
|
|
60
|
+
else: # Linux and other Unix-like systems
|
|
61
|
+
icon_file = vibe_surf_path / 'chrome_extension' / 'icons' / 'logo.png'
|
|
62
|
+
console_mode = True
|
|
63
|
+
print(f"Unix-like system detected - using PNG icon")
|
|
64
|
+
|
|
65
|
+
# Verify icon file exists
|
|
66
|
+
if not icon_file.exists():
|
|
67
|
+
print(f"WARNING: Icon file not found at {icon_file}")
|
|
68
|
+
icon_file = None
|
|
69
|
+
else:
|
|
70
|
+
print(f"Using icon: {icon_file}")
|
|
71
|
+
|
|
72
|
+
# Data files collection - include all necessary static files
|
|
73
|
+
datas = [
|
|
74
|
+
(str(vibe_surf_path / 'chrome_extension'), 'vibe_surf/chrome_extension'),
|
|
75
|
+
(str(vibe_surf_path / 'backend'), 'vibe_surf/backend'),
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
# Add browser_use prompt template files if available
|
|
79
|
+
if browser_use_path:
|
|
80
|
+
browser_use_agent_path = browser_use_path / 'agent'
|
|
81
|
+
# Include the markdown system prompt files
|
|
82
|
+
prompt_files = [
|
|
83
|
+
'system_prompt.md',
|
|
84
|
+
'system_prompt_no_thinking.md',
|
|
85
|
+
'system_prompt_flash.md'
|
|
86
|
+
]
|
|
87
|
+
for prompt_file in prompt_files:
|
|
88
|
+
prompt_file_path = browser_use_agent_path / prompt_file
|
|
89
|
+
if prompt_file_path.exists():
|
|
90
|
+
datas.append((str(prompt_file_path), f'browser_use/agent'))
|
|
91
|
+
print(f"Added browser_use prompt file: {prompt_file}")
|
|
92
|
+
else:
|
|
93
|
+
print(f"WARNING: browser_use prompt file not found: {prompt_file_path}")
|
|
94
|
+
|
|
95
|
+
# Include JavaScript files for DOM operations
|
|
96
|
+
browser_use_dom_path = browser_use_path / 'dom'
|
|
97
|
+
if browser_use_dom_path.exists():
|
|
98
|
+
datas.append((str(browser_use_dom_path), 'browser_use/dom'))
|
|
99
|
+
print(f"Added browser_use DOM directory: {browser_use_dom_path}")
|
|
100
|
+
|
|
101
|
+
# Hidden imports - all dynamic imports that PyInstaller might miss
|
|
102
|
+
hiddenimports = [
|
|
103
|
+
# Core web framework
|
|
104
|
+
'uvicorn.main',
|
|
105
|
+
'uvicorn.config',
|
|
106
|
+
'uvicorn.server',
|
|
107
|
+
'uvicorn.protocols.http.auto',
|
|
108
|
+
'uvicorn.protocols.websockets.auto',
|
|
109
|
+
'uvicorn.lifespan.on',
|
|
110
|
+
'fastapi.applications',
|
|
111
|
+
'fastapi.routing',
|
|
112
|
+
'fastapi.middleware',
|
|
113
|
+
'fastapi.middleware.cors',
|
|
114
|
+
|
|
115
|
+
# Browser automation
|
|
116
|
+
'browser_use',
|
|
117
|
+
'cdp_use',
|
|
118
|
+
|
|
119
|
+
# HTTP and networking
|
|
120
|
+
'aiohttp.web',
|
|
121
|
+
'aiohttp.client',
|
|
122
|
+
'websockets.server',
|
|
123
|
+
'websockets.client',
|
|
124
|
+
|
|
125
|
+
# Database
|
|
126
|
+
'sqlalchemy.dialects.sqlite',
|
|
127
|
+
'sqlalchemy.pool',
|
|
128
|
+
'aiosqlite',
|
|
129
|
+
|
|
130
|
+
# Core dependencies
|
|
131
|
+
'rich.console',
|
|
132
|
+
'rich.panel',
|
|
133
|
+
'rich.prompt',
|
|
134
|
+
'rich.text',
|
|
135
|
+
'pydantic',
|
|
136
|
+
'pydantic.main',
|
|
137
|
+
'pydantic.fields',
|
|
138
|
+
'langgraph',
|
|
139
|
+
'langgraph.graph',
|
|
140
|
+
|
|
141
|
+
# Image processing
|
|
142
|
+
'scikit-image',
|
|
143
|
+
'skimage.io',
|
|
144
|
+
'skimage.transform',
|
|
145
|
+
|
|
146
|
+
# JSON and data processing
|
|
147
|
+
'json_repair',
|
|
148
|
+
'uuid7',
|
|
149
|
+
'psutil',
|
|
150
|
+
'aiofiles',
|
|
151
|
+
'anyio',
|
|
152
|
+
'python_socks',
|
|
153
|
+
'python_multipart',
|
|
154
|
+
'python_dotenv',
|
|
155
|
+
'greenlet',
|
|
156
|
+
'getmac',
|
|
157
|
+
]
|
|
158
|
+
|
|
159
|
+
# Analysis configuration
|
|
160
|
+
a = Analysis(
|
|
161
|
+
[str(cli_path)],
|
|
162
|
+
pathex=[str(vibe_surf_path.parent)],
|
|
163
|
+
binaries=[],
|
|
164
|
+
datas=datas,
|
|
165
|
+
hiddenimports=hiddenimports,
|
|
166
|
+
hookspath=[],
|
|
167
|
+
hooksconfig={},
|
|
168
|
+
runtime_hooks=[],
|
|
169
|
+
excludes=[
|
|
170
|
+
'matplotlib', # Large plotting library not needed
|
|
171
|
+
'tkinter', # GUI library not needed
|
|
172
|
+
'PyQt5', # GUI library not needed
|
|
173
|
+
'PyQt6', # GUI library not needed
|
|
174
|
+
'PySide2', # GUI library not needed
|
|
175
|
+
'PySide6', # GUI library not needed
|
|
176
|
+
'jupyter', # Jupyter notebook not needed
|
|
177
|
+
'IPython', # Interactive Python not needed
|
|
178
|
+
],
|
|
179
|
+
win_no_prefer_redirects=False,
|
|
180
|
+
win_private_assemblies=False,
|
|
181
|
+
cipher=block_cipher,
|
|
182
|
+
noarchive=False,
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
# Remove duplicate files to reduce size
|
|
186
|
+
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
187
|
+
|
|
188
|
+
# Create executable - icon configuration depends on platform
|
|
189
|
+
exe = EXE(
|
|
190
|
+
pyz,
|
|
191
|
+
a.scripts,
|
|
192
|
+
a.binaries,
|
|
193
|
+
a.zipfiles,
|
|
194
|
+
a.datas,
|
|
195
|
+
[],
|
|
196
|
+
name='vibesurf',
|
|
197
|
+
debug=False,
|
|
198
|
+
bootloader_ignore_signals=False,
|
|
199
|
+
strip=False,
|
|
200
|
+
upx=True, # Compress to reduce file size
|
|
201
|
+
upx_exclude=[],
|
|
202
|
+
runtime_tmpdir=None,
|
|
203
|
+
console=console_mode,
|
|
204
|
+
disable_windowed_traceback=False,
|
|
205
|
+
target_arch=None,
|
|
206
|
+
codesign_identity=None,
|
|
207
|
+
entitlements_file=None,
|
|
208
|
+
# For macOS, icon is set in BUNDLE; for others, set in EXE
|
|
209
|
+
icon=None if current_platform == "Darwin" else (str(icon_file) if icon_file else None),
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
# For macOS, create a proper .app bundle
|
|
213
|
+
if current_platform == "Darwin":
|
|
214
|
+
app = BUNDLE(
|
|
215
|
+
exe,
|
|
216
|
+
name='VibeSurf.app',
|
|
217
|
+
icon=str(icon_file) if icon_file else None, # macOS icon set here
|
|
218
|
+
bundle_identifier='com.vibesurf.app',
|
|
219
|
+
version='1.0.0',
|
|
220
|
+
info_plist={
|
|
221
|
+
'CFBundleName': 'VibeSurf',
|
|
222
|
+
'CFBundleDisplayName': 'VibeSurf',
|
|
223
|
+
'CFBundleIdentifier': 'com.vibesurf.app',
|
|
224
|
+
'CFBundleVersion': '1.0.0',
|
|
225
|
+
'CFBundleShortVersionString': '1.0.0',
|
|
226
|
+
'CFBundleExecutable': 'vibesurf',
|
|
227
|
+
'CFBundleIconFile': 'logo.icns',
|
|
228
|
+
'NSHighResolutionCapable': True,
|
|
229
|
+
'LSApplicationCategoryType': 'public.app-category.developer-tools',
|
|
230
|
+
'NSAppleEventsUsageDescription': 'VibeSurf needs Apple Events access for browser automation.',
|
|
231
|
+
'NSCameraUsageDescription': 'VibeSurf may need camera access for certain automation tasks.',
|
|
232
|
+
'NSMicrophoneUsageDescription': 'VibeSurf may need microphone access for certain automation tasks.',
|
|
233
|
+
'NSScreenCaptureUsageDescription': 'VibeSurf needs screen capture access for browser automation.',
|
|
234
|
+
'LSMinimumSystemVersion': '10.13.0',
|
|
235
|
+
},
|
|
236
|
+
codesign_identity=None, # Set this to your Developer ID if you have one
|
|
237
|
+
entitlements_file=None,
|
|
238
|
+
)
|
|
239
|
+
print("Created macOS .app bundle: VibeSurf.app")
|
|
240
|
+
print(f"Bundle icon: {icon_file}")
|
|
241
|
+
else:
|
|
242
|
+
print(f"Executable icon: {icon_file}")
|
|
Binary file
|
vibesurf-0.1.9a0/vibesurf.spec
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# -*- mode: python ; coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
import sys
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
|
|
7
|
-
# Ensure using current environment's Python
|
|
8
|
-
python_path = sys.executable
|
|
9
|
-
print(f"Using Python: {python_path}")
|
|
10
|
-
|
|
11
|
-
block_cipher = None
|
|
12
|
-
|
|
13
|
-
# Dynamically find vibe_surf installation location
|
|
14
|
-
try:
|
|
15
|
-
import vibe_surf
|
|
16
|
-
vibe_surf_path = Path(vibe_surf.__file__).parent
|
|
17
|
-
print(f"VibeSurf package location: {vibe_surf_path}")
|
|
18
|
-
cli_path = vibe_surf_path / 'cli.py'
|
|
19
|
-
except ImportError:
|
|
20
|
-
# Fallback to relative path (development environment)
|
|
21
|
-
vibe_surf_path = Path.cwd() / 'vibe_surf'
|
|
22
|
-
cli_path = vibe_surf_path / 'cli.py'
|
|
23
|
-
print(f"Using development path: {vibe_surf_path}")
|
|
24
|
-
|
|
25
|
-
# Check if CLI file exists
|
|
26
|
-
if not cli_path.exists():
|
|
27
|
-
print(f"ERROR: CLI file not found at {cli_path}")
|
|
28
|
-
print("Please ensure vibe_surf is properly installed or run from project directory")
|
|
29
|
-
sys.exit(1)
|
|
30
|
-
|
|
31
|
-
# Data files collection - include all necessary static files
|
|
32
|
-
datas = [
|
|
33
|
-
(str(vibe_surf_path / 'chrome_extension'), 'vibe_surf/chrome_extension'),
|
|
34
|
-
(str(vibe_surf_path / 'backend'), 'vibe_surf/backend'),
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
# Hidden imports - all dynamic imports that PyInstaller might miss
|
|
38
|
-
hiddenimports = [
|
|
39
|
-
# Core web framework
|
|
40
|
-
'uvicorn.main',
|
|
41
|
-
'uvicorn.config',
|
|
42
|
-
'uvicorn.server',
|
|
43
|
-
'uvicorn.protocols.http.auto',
|
|
44
|
-
'uvicorn.protocols.websockets.auto',
|
|
45
|
-
'uvicorn.lifespan.on',
|
|
46
|
-
'fastapi.applications',
|
|
47
|
-
'fastapi.routing',
|
|
48
|
-
'fastapi.middleware',
|
|
49
|
-
'fastapi.middleware.cors',
|
|
50
|
-
|
|
51
|
-
# Browser automation
|
|
52
|
-
'browser_use',
|
|
53
|
-
'cdp_use',
|
|
54
|
-
|
|
55
|
-
# HTTP and networking
|
|
56
|
-
'aiohttp.web',
|
|
57
|
-
'aiohttp.client',
|
|
58
|
-
'websockets.server',
|
|
59
|
-
'websockets.client',
|
|
60
|
-
|
|
61
|
-
# Database
|
|
62
|
-
'sqlalchemy.dialects.sqlite',
|
|
63
|
-
'sqlalchemy.pool',
|
|
64
|
-
'aiosqlite',
|
|
65
|
-
|
|
66
|
-
# Core dependencies
|
|
67
|
-
'rich.console',
|
|
68
|
-
'rich.panel',
|
|
69
|
-
'rich.prompt',
|
|
70
|
-
'rich.text',
|
|
71
|
-
'pydantic',
|
|
72
|
-
'pydantic.main',
|
|
73
|
-
'pydantic.fields',
|
|
74
|
-
'langgraph',
|
|
75
|
-
'langgraph.graph',
|
|
76
|
-
|
|
77
|
-
# Image processing
|
|
78
|
-
'scikit-image',
|
|
79
|
-
'skimage.io',
|
|
80
|
-
'skimage.transform',
|
|
81
|
-
|
|
82
|
-
# JSON and data processing
|
|
83
|
-
'json_repair',
|
|
84
|
-
'uuid7',
|
|
85
|
-
'psutil',
|
|
86
|
-
'aiofiles',
|
|
87
|
-
'anyio',
|
|
88
|
-
'python_socks',
|
|
89
|
-
'python_multipart',
|
|
90
|
-
'python_dotenv',
|
|
91
|
-
'greenlet',
|
|
92
|
-
'getmac',
|
|
93
|
-
]
|
|
94
|
-
|
|
95
|
-
# Analysis configuration
|
|
96
|
-
a = Analysis(
|
|
97
|
-
[str(cli_path)],
|
|
98
|
-
pathex=[str(vibe_surf_path.parent)],
|
|
99
|
-
binaries=[],
|
|
100
|
-
datas=datas,
|
|
101
|
-
hiddenimports=hiddenimports,
|
|
102
|
-
hookspath=[],
|
|
103
|
-
hooksconfig={},
|
|
104
|
-
runtime_hooks=[],
|
|
105
|
-
excludes=[
|
|
106
|
-
'matplotlib', # Large plotting library not needed
|
|
107
|
-
'tkinter', # GUI library not needed
|
|
108
|
-
'PyQt5', # GUI library not needed
|
|
109
|
-
'PyQt6', # GUI library not needed
|
|
110
|
-
'PySide2', # GUI library not needed
|
|
111
|
-
'PySide6', # GUI library not needed
|
|
112
|
-
'jupyter', # Jupyter notebook not needed
|
|
113
|
-
'IPython', # Interactive Python not needed
|
|
114
|
-
],
|
|
115
|
-
win_no_prefer_redirects=False,
|
|
116
|
-
win_private_assemblies=False,
|
|
117
|
-
cipher=block_cipher,
|
|
118
|
-
noarchive=False,
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
# Remove duplicate files to reduce size
|
|
122
|
-
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
123
|
-
|
|
124
|
-
# Create executable
|
|
125
|
-
exe = EXE(
|
|
126
|
-
pyz,
|
|
127
|
-
a.scripts,
|
|
128
|
-
a.binaries,
|
|
129
|
-
a.zipfiles,
|
|
130
|
-
a.datas,
|
|
131
|
-
[],
|
|
132
|
-
name='vibesurf',
|
|
133
|
-
debug=False,
|
|
134
|
-
bootloader_ignore_signals=False,
|
|
135
|
-
strip=False,
|
|
136
|
-
upx=True, # Compress to reduce file size
|
|
137
|
-
upx_exclude=[],
|
|
138
|
-
runtime_tmpdir=None,
|
|
139
|
-
console=True,
|
|
140
|
-
disable_windowed_traceback=False,
|
|
141
|
-
target_arch=None,
|
|
142
|
-
codesign_identity=None,
|
|
143
|
-
entitlements_file=None,
|
|
144
|
-
icon=str(vibe_surf_path / 'chrome_extension' / 'icons' / 'logo.png'),
|
|
145
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -27,7 +27,6 @@ dependencies = [
|
|
|
27
27
|
"aiohttp>=3.12.15",
|
|
28
28
|
"scikit-image>=0.25.2",
|
|
29
29
|
"python-socks>=2.7.2",
|
|
30
|
-
"browser-use==0.7.1",
|
|
31
30
|
"langgraph>=0.6.4",
|
|
32
31
|
"fastapi>=0.104.0",
|
|
33
32
|
"uvicorn[standard]>=0.24.0",
|
|
@@ -39,6 +38,7 @@ dependencies = [
|
|
|
39
38
|
"rich>=13.0.0",
|
|
40
39
|
"greenlet>=3.2.4",
|
|
41
40
|
"getmac>=0.9.5",
|
|
41
|
+
"browser-use==0.7.1",
|
|
42
42
|
]
|
|
43
43
|
|
|
44
44
|
[project.urls]
|
|
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
|
|
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
|
|
@@ -8,7 +8,6 @@ json-repair>=0.48.0
|
|
|
8
8
|
aiohttp>=3.12.15
|
|
9
9
|
scikit-image>=0.25.2
|
|
10
10
|
python-socks>=2.7.2
|
|
11
|
-
browser-use==0.7.1
|
|
12
11
|
langgraph>=0.6.4
|
|
13
12
|
fastapi>=0.104.0
|
|
14
13
|
uvicorn[standard]>=0.24.0
|
|
@@ -20,3 +19,4 @@ aiosqlite>=0.21.0
|
|
|
20
19
|
rich>=13.0.0
|
|
21
20
|
greenlet>=3.2.4
|
|
22
21
|
getmac>=0.9.5
|
|
22
|
+
browser-use==0.7.1
|
|
File without changes
|