Skip to content

Commit b23653a

Browse files
authored
Merge pull request #1 from ThomsenDrake/merge/vscode-xml-parse
Merge/vscode xml parse
2 parents 79ad9c3 + a68ca18 commit b23653a

File tree

89 files changed

+1156
-1085
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1156
-1085
lines changed

.changeset/swift-carrots-doubt.md

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

.dockerignore

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Build artifacts
2+
bin/
3+
!bin/roo-code-latest.vsix
4+
dist/
5+
**/dist/
6+
out/
7+
**/out/
8+
9+
# Dependencies
10+
node_modules/
11+
**/node_modules/
12+
13+
# Test and development files
14+
coverage/
15+
**/.vscode-test/
16+
17+
knip.json
18+
.husky/

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ Check out the [CHANGELOG](CHANGELOG.md) for detailed updates and fixes.
4949

5050
---
5151

52-
## 🎉 Roo Code 3.18 Released
52+
## 🎉 Roo Code 3.19 Released
5353

54-
Roo Code 3.18 brings powerful new features and improvements based on your feedback!
54+
Roo Code 3.19 brings intelligent context management improvements and enhanced user experience!
5555

56-
- **Gemini 2.5 Flash Preview Models** - Access the latest Gemini Flash models for faster and more efficient responses.
57-
- **Intelligent Context Condensing Button** - New button in task header lets you intelligently condense content with visual feedback.
58-
- **YAML Support for Mode Definitions** - Create and customize modes more easily with YAML support.
56+
- **Intelligent Context Condensing Enabled by Default** - Context condensing is now enabled by default with configurable settings for when automatic condensing happens.
57+
- **Manual Condensing Button** - New button in the task header allows you to manually trigger context condensing at any time.
58+
- **Enhanced Condensing Settings** - Fine-tune when and how automatic condensing occurs through the Context Settings panel.
5959

6060
---
6161

evals/Dockerfile

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
FROM node:20-slim AS base
2+
ENV PNPM_HOME="/pnpm"
3+
ENV PATH="$PNPM_HOME:$PATH"
4+
RUN corepack enable
5+
RUN npm install -g npm@latest
6+
RUN npm install -g npm-run-all
7+
# Install dependencies
8+
RUN apt update && apt install -y sudo curl git vim jq
9+
10+
11+
# Create a `vscode` user
12+
RUN useradd -m vscode -s /bin/bash && \
13+
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
14+
chmod 0440 /etc/sudoers.d/vscode
15+
# Install VS Code
16+
# https://code.visualstudio.com/docs/setup/linux
17+
RUN apt install -y wget gpg apt-transport-https
18+
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
19+
RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
20+
RUN 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
21+
RUN rm -f packages.microsoft.gpg
22+
RUN apt update && apt install -y code
23+
# Install Xvfb
24+
RUN apt install -y xvfb
25+
# [cpp] Install cmake 3.28.3
26+
RUN apt install -y cmake
27+
# [go] Install Go 1.22.2
28+
RUN apt install -y golang-go
29+
# [java] Install Java 21
30+
RUN apt install -y default-jre
31+
# [python] Install Python 3.12.3 and uv 0.6.6
32+
RUN apt install -y python3 python3-venv python3-dev python3-pip
33+
# [rust] Install Rust 1.85
34+
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
35+
RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
36+
WORKDIR /home/vscode
37+
USER vscode
38+
39+
# Copy evals
40+
RUN git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals
41+
42+
# Prepare evals
43+
WORKDIR /home/vscode/evals/python
44+
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
45+
RUN /home/vscode/.local/bin/uv sync
46+
47+
WORKDIR /home/vscode/repo/benchmark
48+
49+
# Install dependencies
50+
COPY --chown=vscode:vscode ./evals/package.json ./evals/pnpm-lock.yaml ./evals/pnpm-workspace.yaml ./evals/.npmrc ./
51+
RUN mkdir -p apps/cli apps/web \
52+
config/eslint config/typescript \
53+
packages/db packages/ipc packages/lib packages/types
54+
COPY --chown=vscode:vscode ./evals/apps/cli/package.json ./apps/cli/
55+
COPY --chown=vscode:vscode ./evals/apps/web/package.json ./apps/web/
56+
COPY --chown=vscode:vscode ./evals/config/eslint/package.json ./config/eslint/
57+
COPY --chown=vscode:vscode ./evals/config/typescript/package.json ./config/typescript/
58+
COPY --chown=vscode:vscode ./evals/packages/db/package.json ./packages/db/
59+
COPY --chown=vscode:vscode ./evals/packages/ipc/package.json ./packages/ipc/
60+
COPY --chown=vscode:vscode ./evals/packages/lib/package.json ./packages/lib/
61+
COPY --chown=vscode:vscode ./evals/packages/types/package.json ./packages/types/
62+
RUN pnpm install
63+
64+
# Copy & install extension
65+
COPY --chown=vscode:vscode ./bin/roo-code-latest.vsix ./
66+
RUN code --debug --install-extension ./roo-code-latest.vsix
67+
68+
# Copy application code
69+
COPY --chown=vscode:vscode ./evals ./
70+
71+
# Copy environment variables
72+
COPY --chown=vscode:vscode ./evals/.env ./
73+
74+
# Push database schema
75+
RUN pnpm --filter @evals/db db:push
76+
77+
EXPOSE 3000
78+
CMD ["pnpm", "web"]

evals/apps/cli/src/index.ts

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,31 @@ const runExercise = async ({ run, task, server }: { run: Run; task: Task; server
194194

195195
console.log(`${Date.now()} [cli#runExercise] Opening new VS Code window at ${workspacePath}`)
196196

197-
await execa({
197+
const controller = new AbortController()
198+
const cancelSignal = controller.signal
199+
200+
// If debugging:
201+
// Use --wait --log trace or --verbose.
202+
let codeCommand = `code --disable-workspace-trust`
203+
const isDocker = fs.existsSync("/.dockerenv")
204+
205+
if (isDocker) {
206+
if (run.concurrency > 1) {
207+
throw new Error("Cannot run multiple tasks in parallel in Docker. Please set concurrency to 1.")
208+
}
209+
codeCommand = `xvfb-run --auto-servernum --server-num=1 ${codeCommand} --wait --log trace --disable-gpu --password-store="basic"`
210+
}
211+
212+
const subprocess = execa({
198213
env: {
199214
ROO_CODE_IPC_SOCKET_PATH: taskSocketPath,
200215
},
201216
shell: "/bin/bash",
202-
})`code --disable-workspace-trust -n ${workspacePath}`
217+
cancelSignal,
218+
})`${codeCommand} -n ${workspacePath}`
219+
220+
// If debugging:
221+
// subprocess.stdout.pipe(process.stdout)
203222

204223
// Give VSCode some time to spawn before connecting to its unix socket.
205224
await new Promise((resolve) => setTimeout(resolve, 3_000))
@@ -309,23 +328,30 @@ const runExercise = async ({ run, task, server }: { run: Run; task: Task; server
309328

310329
console.log(`${Date.now()} [cli#runExercise | ${language} / ${exercise}] starting task`)
311330

312-
client.sendMessage({
313-
type: IpcMessageType.TaskCommand,
314-
origin: IpcOrigin.Client,
315-
clientId: client.clientId!,
316-
data: {
317-
commandName: TaskCommandName.StartNewTask,
331+
if (client.isReady) {
332+
client.sendMessage({
333+
type: IpcMessageType.TaskCommand,
334+
origin: IpcOrigin.Client,
335+
clientId: client.clientId!,
318336
data: {
319-
configuration: {
320-
...rooCodeDefaults,
321-
openRouterApiKey: process.env.OPENROUTER_API_KEY!,
322-
...run.settings,
337+
commandName: TaskCommandName.StartNewTask,
338+
data: {
339+
configuration: {
340+
...rooCodeDefaults,
341+
openRouterApiKey: process.env.OPENROUTER_API_KEY!,
342+
...run.settings,
343+
},
344+
text: prompt,
345+
newTab: true,
323346
},
324-
text: prompt,
325-
newTab: true,
326347
},
327-
},
328-
})
348+
})
349+
} else {
350+
console.log(`[cli#runExercise | ${language} / ${exercise}] unable to connect`)
351+
client.disconnect()
352+
taskFinishedAt = Date.now()
353+
isClientDisconnected = true
354+
}
329355

330356
try {
331357
await pWaitFor(() => !!taskFinishedAt || isClientDisconnected, { interval: 1_000, timeout: TASK_TIMEOUT })
@@ -365,6 +391,9 @@ const runExercise = async ({ run, task, server }: { run: Run; task: Task; server
365391
client.disconnect()
366392
}
367393

394+
controller.abort()
395+
await subprocess
396+
368397
return { success: !!taskFinishedAt }
369398
}
370399

@@ -520,7 +549,7 @@ if (!fs.existsSync(extensionDevelopmentPath)) {
520549

521550
if (!fs.existsSync(exercisesPath)) {
522551
console.error(
523-
`Exercises path does not exist. Please run "git clone https://github.com/cte/Roo-Code-Benchmark.git exercises".`,
552+
`Exercises do not exist at ${exercisesPath}. Please run "git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals".`,
524553
)
525554
process.exit(1)
526555
}

evals/package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@
1010
"build": "turbo build --log-order grouped --output-logs new-only",
1111
"web": "turbo dev --filter @evals/web",
1212
"cli": "turbo dev --filter @evals/cli -- run",
13-
"drizzle:studio": "pnpm --filter @evals/db db:studio"
13+
"drizzle:studio": "pnpm --filter @evals/db db:studio",
14+
"docker:build": "docker build -f Dockerfile -t roo-code-eval --progress=plain ..",
15+
"docker:run": "touch /tmp/evals.db && docker run -d -it -p 3000:3000 -v /tmp/evals.db:/tmp/evals.db roo-code-eval",
16+
"docker:start": "pnpm docker:build && pnpm docker:run",
17+
"docker:shell": "docker exec -it $(docker ps --filter \"ancestor=roo-code-eval\" -q) /bin/bash",
18+
"docker:stop": "docker stop $(docker ps --filter \"ancestor=roo-code-eval\" -q)",
19+
"docker:rm": "docker rm $(docker ps -a --filter \"ancestor=roo-code-eval\" -q)",
20+
"docker:clean": "pnpm docker:stop && pnpm docker:rm"
1421
},
1522
"devDependencies": {
1623
"@dotenvx/dotenvx": "^1.41.0",

0 commit comments

Comments
 (0)