Skip to content

Commit 950519b

Browse files
committed
Merge branch 'development'
2 parents 98f687c + a6c55d6 commit 950519b

File tree

18 files changed

+301
-320
lines changed

18 files changed

+301
-320
lines changed

.github/workflows/build-ui.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ jobs:
4242
context: ./packages
4343
file: ./packages/bytebot-ui/Dockerfile
4444
platforms: linux/amd64,linux/arm64
45+
4546
push: true
4647
cache-from: type=gha
4748
cache-to: type=gha,mode=max
4849
tags: ${{ steps.meta.outputs.tags }}
4950
labels: ${{ steps.meta.outputs.labels }}
50-

.github/workflows/build.yaml

Lines changed: 0 additions & 60 deletions
This file was deleted.

.node-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
20.18.2

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
20.18.2

docs/core-concepts/agent-system.mdx

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -114,53 +114,11 @@ The agent processes tasks intelligently:
114114
</Card>
115115
</CardGroup>
116116

117-
### Example Use Cases
118-
119-
#### Research Assistant
120-
```
121-
User: "Find the top 5 project management tools and compare their pricing"
122-
123-
Agent Actions:
124-
1. Opens browser
125-
2. Searches for project management tools
126-
3. Visits each tool's website
127-
4. Extracts pricing information
128-
5. Creates comparison spreadsheet
129-
6. Takes screenshots of each pricing page
130-
```
131-
132-
#### Form Automation
133-
```
134-
User: "Fill out the vendor application form with data from our company profile"
135-
136-
Agent Actions:
137-
1. Opens the form URL
138-
2. Reads company profile document
139-
3. Maps data to form fields
140-
4. Fills out each section
141-
5. Uploads required documents
142-
6. Submits and saves confirmation
143-
```
144-
145-
#### Email Management
146-
```
147-
User: "Check my emails and create a summary of action items"
148-
149-
Agent Actions:
150-
1. Opens email client
151-
2. Reads unread messages
152-
3. Identifies action items
153-
4. Creates organized task list
154-
5. Drafts response templates
155-
6. Flags important messages
156-
```
157-
158117
## Technical Architecture
159118

160119
### Core Components
161120

162121
1. **NestJS Agent Service**
163-
- Manages task queue with BullMQ
164122
- Integrates with Anthropic API
165123
- Handles WebSocket connections
166124
- Coordinates with desktop API
@@ -244,59 +202,14 @@ The web interface provides:
244202
- Configurable authentication
245203
- API key management
246204
- Network isolation options
247-
- Role-based permissions (coming soon)
248205

249206
## Extending the Agent
250207

251-
### Custom Tools
252-
Add specialized capabilities:
253-
```javascript
254-
// Register a custom tool
255-
agent.registerTool({
256-
name: 'database_query',
257-
description: 'Query internal database',
258-
execute: async (params) => {
259-
// Your implementation
260-
}
261-
});
262-
```
263-
264-
### Workflow Templates
265-
Create reusable task templates:
266-
```yaml
267-
name: "Daily Report"
268-
steps:
269-
- action: "screenshot"
270-
target: "dashboard"
271-
- action: "extract_data"
272-
format: "table"
273-
- action: "create_document"
274-
template: "daily_report"
275-
```
276-
277208
### Integration Points
278209
- Webhook notifications
279210
- External API calls
280211
- Custom AI prompts
281-
- Plugin system (coming soon)
282-
283-
## Performance Tuning
284-
285-
### Optimization Settings
286-
287-
```env
288-
# Concurrent task limit
289-
MAX_CONCURRENT_TASKS=1
290212

291-
# Task timeout (ms)
292-
TASK_TIMEOUT=300000
293-
294-
# Screenshot quality (0-100)
295-
SCREENSHOT_QUALITY=80
296-
297-
# Message history limit
298-
MAX_CONTEXT_MESSAGES=50
299-
```
300213

301214
### Best Practices
302215

@@ -316,13 +229,6 @@ MAX_CONTEXT_MESSAGES=50
316229
- Ensure sufficient API credits
317230
</Accordion>
318231

319-
<Accordion title="Tasks failing frequently">
320-
- Increase task timeout
321-
- Check desktop responsiveness
322-
- Verify network connectivity
323-
- Review action timing
324-
</Accordion>
325-
326232
<Accordion title="Slow task execution">
327233
- Monitor system resources
328234
- Check network latency

infrastructure/docker/Dockerfile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ENV DISPLAY=:0
1616
# -----------------------------------------------------------------------------
1717
# 2. System dependencies installation
1818
# -----------------------------------------------------------------------------
19-
RUN apt-get update && apt-get install -y \
19+
RUN apt-get update && apt-get install -y --no-install-recommends \
2020
# X11 / VNC
2121
xvfb x11vnc xauth x11-xserver-utils \
2222
x11-apps sudo software-properties-common \
@@ -45,7 +45,7 @@ RUN mkdir -p /run/dbus && \
4545
# 3. Additional software installation
4646
# -----------------------------------------------------------------------------
4747
# Install Firefox
48-
RUN apt-get update && apt-get install -y \
48+
RUN apt-get update && apt-get install -y --no-install-recommends \
4949
# Install necessary for adding PPA
5050
software-properties-common apt-transport-https wget gnupg \
5151
# Install Additional Graphics Libraries
@@ -61,7 +61,7 @@ RUN apt-get update && apt-get install -y \
6161
fonts-freefont-ttf \
6262
&& add-apt-repository -y ppa:mozillateam/ppa \
6363
&& apt-get update \
64-
&& apt-get install -y firefox-esr thunderbird \
64+
&& apt-get install -y --no-install-recommends firefox-esr thunderbird \
6565
&& apt-get clean && rm -rf /var/lib/apt/lists/* \
6666
# Set Firefox as default browser system-wide
6767
&& update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox-esr 200 \
@@ -136,11 +136,11 @@ RUN ARCH=$(dpkg --print-architecture) && \
136136
mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22 && \
137137
curl -sS https://downloads.1password.com/linux/keys/1password.asc | \
138138
gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg && \
139-
apt-get update && apt-get install -y 1password && \
139+
apt-get update && apt-get install -y --no-install-recommends 1password && \
140140
apt-get clean && rm -rf /var/lib/apt/lists/*; \
141141
elif [ "$ARCH" = "arm64" ]; then \
142142
# Install from tar.gz for ARM64
143-
apt-get update && apt-get install -y \
143+
apt-get update && apt-get install -y --no-install-recommends \
144144
libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6 xdg-utils \
145145
libatspi2.0-0 libdrm2 libgbm1 libxcb-dri3-0 libxkbcommon0 \
146146
libsecret-1-0 && \
@@ -183,7 +183,7 @@ RUN ARCH=$(dpkg --print-architecture) && \
183183
# Install Node.js
184184
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
185185
&& apt-get update \
186-
&& apt-get install -y nodejs \
186+
&& apt-get install -y --no-install-recommends nodejs \
187187
&& apt-get clean && rm -rf /var/lib/apt/lists/*
188188

189189
# Upgrade pip
@@ -205,7 +205,7 @@ RUN git clone https://github.com/novnc/noVNC.git /opt/noVNC \
205205

206206
# Install dependencies required to build libnut-core and uiohook-napi
207207
RUN apt-get update && \
208-
apt-get install -y \
208+
apt-get install -y --no-install-recommends \
209209
cmake \
210210
libx11-dev \
211211
libxtst-dev \

infrastructure/docker/docker-compose.core.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services:
77
context: ../../
88
dockerfile: infrastructure/docker/Dockerfile
99
# Use pre-built image
10-
image: ghcr.io/bytebot-ai/bytebot:edge
10+
image: ghcr.io/bytebot-ai/bytebot-desktop:edge
1111

1212
container_name: bytebot-desktop
1313
restart: unless-stopped

infrastructure/docker/docker-compose.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services:
77
context: ../../
88
dockerfile: infrastructure/docker/Dockerfile
99
# Use pre-built image
10-
image: ghcr.io/bytebot-ai/bytebot:edge
10+
image: ghcr.io/bytebot-ai/bytebot-desktop:edge
1111
shm_size: "2g"
1212
container_name: bytebot-desktop
1313
restart: unless-stopped
@@ -39,6 +39,8 @@ services:
3939
build:
4040
context: ../../packages/
4141
dockerfile: bytebot-agent/Dockerfile
42+
# Use pre-built image
43+
image: ghcr.io/bytebot-ai/bytebot-agent:edge
4244
container_name: bytebot-agent
4345
restart: unless-stopped
4446
ports:
@@ -59,6 +61,8 @@ services:
5961
args:
6062
- BYTEBOT_AGENT_BASE_URL=${BYTEBOT_AGENT_BASE_URL:-http://bytebot-agent:9991}
6163
- BYTEBOT_DESKTOP_VNC_URL=${BYTEBOT_DESKTOP_VNC_URL:-http://bytebot-desktop:9990/websockify}
64+
# Use pre-built image
65+
image: ghcr.io/bytebot-ai/bytebot-ui:edge
6266
container_name: bytebot-ui
6367
restart: unless-stopped
6468
ports:

packages/bytebot-agent/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Base image
2-
FROM node:20-alpine
2+
FROM node:20.18.2-alpine3.21
33

44
# Create app directory
55
WORKDIR /app

packages/bytebot-agent/package.json

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,49 +22,49 @@
2222
"test:e2e": "jest --config ./test/jest-e2e.json"
2323
},
2424
"dependencies": {
25-
"@anthropic-ai/sdk": "^0.39.0",
25+
"@anthropic-ai/sdk": "0.39.0",
2626
"@bytebot/shared": "../shared",
27-
"@nestjs/common": "^11.0.1",
28-
"@nestjs/config": "^4.0.2",
29-
"@nestjs/core": "^11.0.1",
30-
"@nestjs/platform-express": "^11.1.3",
31-
"@nestjs/event-emitter": "^3.0.1",
32-
"@nestjs/platform-socket.io": "^11.1.1",
33-
"@nestjs/schedule": "^6.0.0",
34-
"@nestjs/websockets": "^11.1.1",
35-
"@prisma/client": "^6.6.0",
36-
"class-validator": "^0.14.2",
37-
"reflect-metadata": "^0.2.2",
38-
"rxjs": "^7.8.1",
39-
"socket.io": "^4.8.1",
40-
"socket.io-client": "^4.8.1"
27+
"@nestjs/common": "11.0.1",
28+
"@nestjs/config": "4.0.2",
29+
"@nestjs/core": "11.0.1",
30+
"@nestjs/platform-express": "11.1.3",
31+
"@nestjs/event-emitter": "3.0.1",
32+
"@nestjs/platform-socket.io": "11.1.1",
33+
"@nestjs/schedule": "6.0.0",
34+
"@nestjs/websockets": "11.1.1",
35+
"@prisma/client": "6.6.0",
36+
"class-validator": "0.14.2",
37+
"reflect-metadata": "0.2.2",
38+
"rxjs": "7.8.1",
39+
"socket.io": "4.8.1",
40+
"socket.io-client": "4.8.1"
4141
},
4242
"devDependencies": {
43-
"@eslint/eslintrc": "^3.2.0",
44-
"@eslint/js": "^9.18.0",
45-
"@nestjs/cli": "^11.0.0",
46-
"@nestjs/schematics": "^11.0.0",
47-
"@nestjs/testing": "^11.0.1",
48-
"@swc/cli": "^0.6.0",
49-
"@swc/core": "^1.10.7",
50-
"@types/express": "^5.0.0",
51-
"@types/jest": "^29.5.14",
52-
"@types/node": "^22.10.7",
53-
"@types/supertest": "^6.0.2",
54-
"eslint": "^9.18.0",
55-
"eslint-config-prettier": "^10.0.1",
56-
"eslint-plugin-prettier": "^5.2.2",
57-
"globals": "^15.14.0",
58-
"jest": "^29.7.0",
59-
"prettier": "^3.4.2",
60-
"source-map-support": "^0.5.21",
61-
"supertest": "^7.0.0",
62-
"ts-jest": "^29.2.5",
63-
"ts-loader": "^9.5.2",
64-
"ts-node": "^10.9.2",
65-
"tsconfig-paths": "^4.2.0",
66-
"typescript": "^5.7.3",
67-
"typescript-eslint": "^8.20.0"
43+
"@eslint/eslintrc": "3.2.0",
44+
"@eslint/js": "9.18.0",
45+
"@nestjs/cli": "11.0.0",
46+
"@nestjs/schematics": "11.0.0",
47+
"@nestjs/testing": "11.0.1",
48+
"@swc/cli": "0.6.0",
49+
"@swc/core": "1.10.7",
50+
"@types/express": "5.0.0",
51+
"@types/jest": "29.5.14",
52+
"@types/node": "22.10.7",
53+
"@types/supertest": "6.0.2",
54+
"eslint": "9.18.0",
55+
"eslint-config-prettier": "10.0.1",
56+
"eslint-plugin-prettier": "5.2.2",
57+
"globals": "15.14.0",
58+
"jest": "29.7.0",
59+
"prettier": "3.4.2",
60+
"source-map-support": "0.5.21",
61+
"supertest": "7.0.0",
62+
"ts-jest": "29.2.5",
63+
"ts-loader": "9.5.2",
64+
"ts-node": "10.9.2",
65+
"tsconfig-paths": "4.2.0",
66+
"typescript": "5.7.3",
67+
"typescript-eslint": "8.20.0"
6868
},
6969
"jest": {
7070
"moduleFileExtensions": [

0 commit comments

Comments
 (0)