Skip to content

Commit 11d4058

Browse files
committed
More progress
1 parent d29ab5a commit 11d4058

File tree

7 files changed

+77
-159
lines changed

7 files changed

+77
-159
lines changed

apps/cloud-agents/.env.example

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
DATABASE_URL=postgresql://postgres:password@localhost:5433/cloud_agents
22
REDIS_URL=redis://localhost:6380
3-
GITHUB_WEBHOOK_SECRET=your-webhook-secret-here
4-
OPENROUTER_API_KEY=your-openrouter-api-key
3+
4+
GH_WEBHOOK_SECRET=your-webhook-secret-here
5+
GH_TOKEN=your-token-here
6+
7+
OPENROUTER_API_KEY=sk-or-v1-...
8+
59
SLACK_API_TOKEN=xoxb-...

apps/cloud-agents/docker-compose.yml

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ services:
1616
timeout: 5s
1717
retries: 5
1818
start_period: 30s
19-
profiles:
20-
- server
2119

2220
redis:
2321
container_name: cloud-agents-redis
@@ -27,8 +25,6 @@ services:
2725
volumes:
2826
- ./docker/redis-data:/data
2927
command: redis-server --appendonly yes
30-
profiles:
31-
- server
3228

3329
dashboard:
3430
container_name: cloud-agents-dashboard
@@ -41,9 +37,8 @@ services:
4137
- REDIS_URL=redis://redis:6379
4238
- NODE_ENV=production
4339
depends_on:
44-
- redis
45-
profiles:
46-
- server
40+
redis:
41+
condition: service_started
4742

4843
api:
4944
build:
@@ -62,40 +57,22 @@ services:
6257
condition: service_healthy
6358
redis:
6459
condition: service_started
65-
profiles:
66-
- server
6760

6861
worker:
6962
build:
7063
context: ../../
71-
dockerfile: apps/cloud-agents/docker/Dockerfile.app
72-
command: pnpm --filter @roo-code/cloud-agents worker:dev
73-
environment:
74-
- DATABASE_URL=postgresql://postgres:password@db:5432/cloud_agents
75-
- REDIS_URL=redis://redis:6379
76-
- NODE_ENV=production
77-
volumes:
78-
- /var/run/docker.sock:/var/run/docker.sock
79-
- /tmp/cloud-agents:/var/log/cloud-agents
80-
depends_on:
81-
- db
82-
- redis
83-
profiles:
84-
- server
85-
86-
runner:
87-
build:
88-
context: ../../
89-
dockerfile: apps/cloud-agents/docker/Dockerfile.runner
64+
dockerfile: apps/cloud-agents/docker/Dockerfile.worker
65+
args:
66+
- GH_TOKEN=${GH_TOKEN}
67+
env_file:
68+
- .env
9069
environment:
9170
- HOST_EXECUTION_METHOD=docker
9271
volumes:
9372
- /var/run/docker.sock:/var/run/docker.sock
9473
- /tmp/cloud-agents:/var/log/cloud-agents
9574
stdin_open: true
9675
tty: true
97-
profiles:
98-
- runner
9976

10077
networks:
10178
default:

apps/cloud-agents/docker/Dockerfile.runner

Lines changed: 0 additions & 88 deletions
This file was deleted.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# docker compose build worker
2+
3+
FROM node:20-slim AS base
4+
5+
# Install pnpm
6+
ENV PNPM_HOME="/pnpm"
7+
ENV PATH="$PNPM_HOME:$PATH"
8+
RUN corepack enable
9+
10+
# Install system packages
11+
RUN apt update && \
12+
apt install -y \
13+
curl \
14+
git \
15+
vim \
16+
jq \
17+
netcat-openbsd \
18+
apt-transport-https \
19+
ca-certificates \
20+
gnupg \
21+
lsb-release \
22+
wget \
23+
gpg \
24+
xvfb \
25+
gh \
26+
&& rm -rf /var/lib/apt/lists/*
27+
28+
# Install Docker cli
29+
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
30+
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
31+
&& apt update && apt install -y docker-ce-cli \
32+
&& rm -rf /var/lib/apt/lists/*
33+
34+
# Install VS Code
35+
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg \
36+
&& install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg \
37+
&& echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | tee /etc/apt/sources.list.d/vscode.list > /dev/null \
38+
&& rm -f packages.microsoft.gpg \
39+
&& apt update && apt install -y code \
40+
&& rm -rf /var/lib/apt/lists/*
41+
42+
WORKDIR /roo
43+
44+
# Install extensions
45+
RUN mkdir -p /roo/.vscode \
46+
&& code --no-sandbox --user-data-dir /roo/.vscode --install-extension dbaeumer.vscode-eslint \
47+
&& code --no-sandbox --user-data-dir /roo/.vscode --install-extension esbenp.prettier-vscode \
48+
&& code --no-sandbox --user-data-dir /roo/.vscode --install-extension csstools.postcss \
49+
&& code --no-sandbox --user-data-dir /roo/.vscode --install-extension RooVeterinaryInc.roo-cline
50+
51+
# Clone repo
52+
ARG GH_TOKEN
53+
ENV GH_TOKEN=$GH_TOKEN
54+
RUN gh repo clone RooCodeInc/Roo-Code
55+
56+
WORKDIR /roo/Roo-Code
57+
RUN pnpm install
58+
59+
WORKDIR /roo
60+
CMD ["bash"]

apps/cloud-agents/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"db:check": "pnpm drizzle-kit check",
1717
"db:studio": "pnpm drizzle-kit studio",
1818
"services:start": "docker compose up -d db redis dashboard",
19-
"services:stop": "docker compose down",
19+
"services:stop": "docker compose down dashboard redis db",
2020
"worker": "dotenvx run -f .env -- tsx src/lib/worker.ts",
2121
"dashboard": "tsx scripts/dashboard.ts"
2222
},

apps/cloud-agents/src/app/api/webhooks/github/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export async function POST(request: NextRequest) {
2222

2323
const body = await request.text()
2424

25-
if (!verifySignature(body, signature, process.env.GITHUB_WEBHOOK_SECRET!)) {
25+
if (!verifySignature(body, signature, process.env.GH_WEBHOOK_SECRET!)) {
2626
return NextResponse.json({ error: "invalid_signature" }, { status: 401 })
2727
}
2828

apps/cloud-agents/src/lib/slack.ts

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,6 @@ export interface SlackMessage {
99
channel?: string
1010
}
1111

12-
// Example response:
13-
// {
14-
// "ok": true,
15-
// "channel": "C123ABC456",
16-
// "ts": "1503435956.000247",
17-
// "message": {
18-
// "text": "Here's a message for you",
19-
// "username": "ecto1",
20-
// "bot_id": "B123ABC456",
21-
// "attachments": [
22-
// {
23-
// "text": "This is an attachment",
24-
// "id": 1,
25-
// "fallback": "This is an attachment's fallback"
26-
// }
27-
// ],
28-
// "type": "message",
29-
// "subtype": "bot_message",
30-
// "ts": "1503435956.000247"
31-
// }
32-
// }
33-
3412
export interface SlackResponse {
3513
ok: boolean
3614
channel?: string
@@ -66,16 +44,7 @@ export class SlackNotifier {
6644
const result: SlackResponse = await response.json()
6745

6846
if (!result.ok) {
69-
if (result.error === "not_in_channel") {
70-
this.logger.error(
71-
`Slack bot is not a member of channel "${messageWithChannel.channel}". ` +
72-
`Please add the bot to the channel or ensure the channel exists. ` +
73-
`Error: ${result.error}`,
74-
)
75-
} else {
76-
this.logger.error(`Slack API error: ${result.error}`)
77-
}
78-
return null
47+
this.logger.error(`Slack API error: ${result.error}`)
7948
}
8049

8150
return result.ts ?? null
@@ -99,15 +68,11 @@ export class SlackNotifier {
9968
return await this.postMessage({
10069
text: `🚀 Task Started`,
10170
blocks: [
102-
{
103-
type: "header",
104-
text: { type: "plain_text", text: "🚀 Roo Code Task Started" },
105-
},
10671
{
10772
type: "section",
10873
text: {
10974
type: "mrkdwn",
110-
text: `Creating a pull request for <https://github.com/RooCodeInc/Roo-Code/issues/${jobPayload.issue}|GitHub Issue #${jobPayload.issue}>`,
75+
text: `🚀 *Task Started*\nCreating a pull request for <https://github.com/RooCodeInc/Roo-Code/issues/${jobPayload.issue}|GitHub Issue #${jobPayload.issue}>`,
11176
},
11277
},
11378
{

0 commit comments

Comments
 (0)