Roo Code has transitioned to a monorepo powered by PNPM workspaces and Turborepo.
When you first pull down the monorepo changes from git you'll need to re-install all packages using pnpm. You can install pnpm using these instructions. If you're on MacOS the easiest option is to use Homebrew:
brew install pnpm
Once pnpm is installed you should wipe out your existing node_modules directories for a fresh start:
# This is optional, but recommended.
find . -name node_modules | xargs rm -rvf
And then install your packages:
pnpm install
If things are in good working order then you should be able to build a vsix and install it in VSCode:
pnpm vsix -- --out ../bin/roo-code-main.vsix && \
code --install-extension bin/roo-code-main.vsix
To fully stress the monorepo setup, run the following:
pnpm clean && pnpm lint
pnpm clean && pnpm check-types
pnpm clean && pnpm test
pnpm clean && pnpm build
pnpm clean && pnpm bundle
pnpm clean && pnpm bundle:nightly
pnpm clean && pnpm npx turbo watch:bundle
pnpm clean && pnpm npx turbo watch:tsc
pnpm --filter @roo-code/vscode-e2e test:ci
pnpm clean && \
pnpm vsix -- --out ../bin/roo-code.vsix && \
code --install-extension bin/roo-code.vsix
pnpm clean && \
pnpm vsix:nightly -- --out ../../../bin/roo-code-nightly.vsix && \
code --install-extension bin/roo-code-nightly.vsix
Note that this excludes the build task for next.js apps (@roo-code/web-*).
Tasks: build -> bundle -> vsix
build:
@roo-code/build [input: src, package.json, tsconfig.json | output: dist]@roo-code/types [input: src, package.json, tsconfig.json, tsup.config.ts | output: dist]@roo-code/webview-ui [input: src, package.json, tsconfig.json, vite.config.ts | output: ../src/webview-ui]bundle:
roo-cline [input: * | output: dist]vsix:
roo-cline [input: dist | output: bin]