Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: All-Hands-AI/OpenHands
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.7.0
Choose a base ref
...
head repository: All-Hands-AI/OpenHands
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.7.1
Choose a head ref
Loading
Showing with 8,903 additions and 6,196 deletions.
  1. +0 −3 .github/.codecov.yml
  2. +7 −0 .github/dependabot.yml
  3. +2 −2 .github/workflows/ghcr.yml
  4. +1 −1 .github/workflows/review-pr.yml
  5. +1 −1 .github/workflows/run-unit-tests.yml
  6. +2 −2 .github/workflows/solve-issue.yml
  7. +5 −1 .gitignore
  8. +4 −6 CONTRIBUTING.md
  9. +21 −10 Makefile
  10. +1 −1 README.md
  11. +0 −405 agenthub/SWE_agent/Examples.md
  12. +0 −5 agenthub/SWE_agent/__init__.py
  13. +0 −117 agenthub/SWE_agent/agent.py
  14. +0 −167 agenthub/SWE_agent/parser.py
  15. +0 −208 agenthub/SWE_agent/prompts.py
  16. +0 −2 agenthub/__init__.py
  17. +2 −3 agenthub/browsing_agent/response_parser.py
  18. +3 −4 agenthub/codeact_agent/action_parser.py
  19. +8 −24 agenthub/codeact_agent/codeact_agent.py
  20. +19 −5 agenthub/codeact_agent/prompt.py
  21. +2 −2 agenthub/codeact_swe_agent/README.md
  22. +5 −21 agenthub/codeact_swe_agent/codeact_swe_agent.py
  23. +2 −3 agenthub/codeact_swe_agent/response_parser.py
  24. +0 −1 agenthub/micro/agent.py
  25. +1 −1 agenthub/micro/commit_writer/README.md
  26. +2 −36 agenthub/monologue_agent/agent.py
  27. +2 −4 agenthub/monologue_agent/response_parser.py
  28. +6 −6 agenthub/monologue_agent/utils/prompts.py
  29. +0 −3 agenthub/planner_agent/agent.py
  30. +184 −0 config.template.toml
  31. +1 −0 containers/build.sh
  32. +41 −41 docs/i18n/fr/code.json
  33. +0 −2 docs/i18n/fr/docusaurus-plugin-content-docs/current/python/sidebar.json
  34. +107 −0 docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/custom_sandbox_guide.md
  35. +0 −1 docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md
  36. +30 −30 docs/i18n/zh-Hans/code.json
  37. +107 −0 docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/custom_sandbox_guide.md
  38. +0 −1 docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md
  39. +1 −1 docs/modules/usage/about.md
  40. +0 −5 docs/modules/usage/agents.md
  41. +8 −1 docs/modules/usage/architecture.mdx
  42. +56 −48 docs/modules/usage/custom_sandbox_guide.md
  43. +10 −5 docs/modules/usage/intro.mdx
  44. +1 −2 docs/modules/usage/llms/llms.md
  45. +3 −0 docs/modules/usage/llms/localLLMs.md
  46. +38 −29 docs/modules/usage/troubleshooting/troubleshooting.md
  47. +9 −5 docs/modules/usage/troubleshooting/windows.md
  48. +17 −17 docs/package-lock.json
  49. +3 −3 docs/package.json
  50. +62 −156 evaluation/EDA/run_infer.py
  51. +4 −2 evaluation/TUTORIAL.md
  52. +4 −2 evaluation/agent_bench/README.md
  53. +30 −14 evaluation/agent_bench/helper.py
  54. +47 −214 evaluation/agent_bench/run_infer.py
  55. +56 −207 evaluation/biocoder/run_infer.py
  56. +54 −156 evaluation/bird/run_infer.py
  57. +59 −193 evaluation/gaia/run_infer.py
  58. +17 −11 evaluation/gorilla/run_infer.py
  59. +47 −210 evaluation/gpqa/run_infer.py
  60. +53 −188 evaluation/humanevalfix/run_infer.py
  61. +51 −211 evaluation/logic_reasoning/run_infer.py
  62. +4 −2 evaluation/miniwob/README.md
  63. +67 −119 evaluation/miniwob/run_infer.py
  64. +63 −192 evaluation/mint/run_infer.py
  65. +44 −166 evaluation/ml_bench/run_infer.py
  66. +19 −9 evaluation/swe_bench/README.md
  67. +61 −189 evaluation/swe_bench/run_infer.py
  68. +336 −0 evaluation/swe_bench/scripts/docker/all-swebench-lite-instance-images.txt
  69. +45 −5 evaluation/swe_bench/scripts/docker/pull_all_eval_docker.sh
  70. +30 −0 evaluation/swe_bench/scripts/docker/push_eval_docker.sh
  71. +31 −3 evaluation/swe_bench/scripts/eval/convert_od_output_to_swe_json.py
  72. +0 −11 evaluation/swe_bench/scripts/eval/prep_eval.sh
  73. +53 −13 evaluation/swe_bench/scripts/eval/update_output_with_eval.py
  74. +51 −19 evaluation/swe_bench/scripts/eval_infer.sh
  75. +2 −2 evaluation/swe_bench/scripts/run_infer.sh
  76. +1 −1 evaluation/swe_bench/swe_env_box.py
  77. +57 −215 evaluation/toolqa/run_infer.py
  78. +208 −0 evaluation/utils/shared.py
  79. +4 −2 evaluation/webarena/README.md
  80. +67 −115 evaluation/webarena/run_infer.py
  81. +86 −86 frontend/package-lock.json
  82. +9 −9 frontend/package.json
  83. +0 −82 frontend/src/components/CodeEditor.tsx
  84. +1 −1 frontend/src/components/Workspace.tsx
  85. +1 −1 frontend/src/components/chat/ChatInput.tsx
  86. +7 −1 frontend/src/components/chat/ChatInterface.test.tsx
  87. +8 −3 frontend/src/components/chat/ChatMessage.tsx
  88. +199 −0 frontend/src/components/file-explorer/CodeEditor.tsx
  89. +3 −3 frontend/src/components/file-explorer/FileExplorer.test.tsx
  90. +3 −3 frontend/src/components/file-explorer/FileExplorer.tsx
  91. +5 −3 frontend/src/components/file-explorer/TreeNode.tsx
  92. +5 −1 frontend/src/components/terminal/Terminal.test.tsx
  93. +130 −6 frontend/src/i18n/translation.json
  94. +27 −6 frontend/src/services/fileService.ts
  95. +0 −3 frontend/src/utils/beep.tsx
  96. +6 −1 frontend/vite.config.ts
  97. +7 −0 opendevin/README.md
  98. +1 −1 opendevin/controller/action_parser.py
  99. +77 −46 opendevin/controller/agent_controller.py
  100. +15 −4 opendevin/controller/state/state.py
  101. +3 −1 opendevin/controller/state/task.py
  102. +126 −70 opendevin/core/config.py
  103. +0 −9 opendevin/core/exceptions.py
  104. +21 −26 opendevin/core/logger.py
  105. +89 −53 opendevin/core/main.py
  106. +1 −1 opendevin/core/metrics.py
  107. +1 −2 opendevin/core/schema/config.py
  108. +2 −0 opendevin/events/action/agent.py
  109. +5 −5 opendevin/events/event.py
  110. +23 −0 opendevin/events/serialization/event.py
  111. +9 −10 opendevin/events/stream.py
  112. +9 −3 opendevin/llm/llm.py
  113. +1 −1 opendevin/memory/memory.py
  114. +1 −2 opendevin/runtime/__init__.py
  115. +0 −410 opendevin/runtime/docker/exec_box.py
  116. +1 −1 opendevin/runtime/docker/local_box.py
  117. +28 −21 opendevin/runtime/docker/ssh_box.py
  118. +1 −1 opendevin/runtime/e2b/sandbox.py
  119. +1 −1 opendevin/runtime/plugins/agent_skills/README.md
  120. +1 −1 opendevin/runtime/plugins/agent_skills/__init__.py
  121. +187 −74 opendevin/runtime/plugins/agent_skills/agentskills.py
  122. +14 −7 opendevin/runtime/plugins/mixin.py
  123. +8 −11 opendevin/runtime/runtime.py
  124. +189 −33 opendevin/server/listen.py
  125. +1 −1 opendevin/server/session/__init__.py
  126. +4 −5 opendevin/server/session/agent.py
  127. +4 −4 opendevin/server/session/session.py
  128. +295 −395 poetry.lock
  129. +2 −1 pyproject.toml
  130. +1 −1 tests/integration/README.md
  131. +1 −2 tests/integration/conftest.py
  132. +78 −20 tests/integration/mock/CodeActAgent/test_browse_internet/prompt_001.log
  133. +1 −1 tests/integration/mock/CodeActAgent/test_browse_internet/prompt_002.log
  134. +2 −2 tests/integration/mock/CodeActAgent/test_browse_internet/prompt_003.log
  135. +2 −2 tests/integration/mock/CodeActAgent/test_browse_internet/prompt_004.log
  136. +80 −22 tests/integration/mock/CodeActAgent/test_browse_internet/prompt_005.log
  137. +1 −1 tests/integration/mock/CodeActAgent/test_browse_internet/response_001.log
  138. +5 −2 tests/integration/mock/CodeActAgent/test_browse_internet/response_002.log
  139. +6 −2 tests/integration/mock/CodeActAgent/test_browse_internet/response_003.log
  140. +4 −3 tests/integration/mock/CodeActAgent/test_browse_internet/response_004.log
  141. +9 −1 tests/integration/mock/CodeActAgent/test_browse_internet/response_005.log
  142. +78 −20 tests/integration/mock/CodeActAgent/test_edits/prompt_001.log
  143. +85 −25 tests/integration/mock/CodeActAgent/test_edits/prompt_002.log
  144. +96 −29 tests/integration/mock/CodeActAgent/test_edits/prompt_003.log
  145. +102 −39 tests/integration/mock/CodeActAgent/test_edits/prompt_004.log
  146. +471 −0 tests/integration/mock/CodeActAgent/test_edits/prompt_005.log
  147. +2 −2 tests/integration/mock/CodeActAgent/test_edits/response_001.log
  148. +9 −2 tests/integration/mock/CodeActAgent/test_edits/response_002.log
  149. +6 −9 tests/integration/mock/CodeActAgent/test_edits/response_003.log
  150. +4 −1 tests/integration/mock/CodeActAgent/test_edits/response_004.log
  151. +8 −0 tests/integration/mock/CodeActAgent/test_edits/response_005.log
  152. +78 −20 tests/integration/mock/CodeActAgent/test_ipython/prompt_001.log
  153. +82 −22 tests/integration/mock/CodeActAgent/test_ipython/prompt_002.log
  154. +421 −0 tests/integration/mock/CodeActAgent/test_ipython/prompt_003.log
  155. +3 −1 tests/integration/mock/CodeActAgent/test_ipython/response_001.log
  156. +6 −1 tests/integration/mock/CodeActAgent/test_ipython/response_002.log
  157. +3 −0 tests/integration/mock/CodeActAgent/test_ipython/response_003.log
  158. +78 −20 tests/integration/mock/CodeActAgent/test_ipython_module/prompt_001.log
  159. +79 −28 tests/integration/mock/CodeActAgent/test_ipython_module/prompt_002.log
  160. +85 −43 tests/integration/mock/CodeActAgent/test_ipython_module/prompt_003.log
  161. +433 −0 tests/integration/mock/CodeActAgent/test_ipython_module/prompt_004.log
  162. +2 −8 tests/integration/mock/CodeActAgent/test_ipython_module/response_001.log
  163. +5 −14 tests/integration/mock/CodeActAgent/test_ipython_module/response_002.log
  164. +4 −1 tests/integration/mock/CodeActAgent/test_ipython_module/response_003.log
  165. +11 −0 tests/integration/mock/CodeActAgent/test_ipython_module/response_004.log
  166. +78 −20 tests/integration/mock/CodeActAgent/test_write_simple_script/prompt_001.log
  167. +81 −22 tests/integration/mock/CodeActAgent/test_write_simple_script/prompt_002.log
  168. +85 −25 tests/integration/mock/CodeActAgent/test_write_simple_script/prompt_003.log
  169. +433 −0 tests/integration/mock/CodeActAgent/test_write_simple_script/prompt_004.log
  170. +3 −2 tests/integration/mock/CodeActAgent/test_write_simple_script/response_001.log
  171. +2 −2 tests/integration/mock/CodeActAgent/test_write_simple_script/response_002.log
  172. +4 −1 tests/integration/mock/CodeActAgent/test_write_simple_script/response_003.log
  173. +3 −0 tests/integration/mock/CodeActAgent/test_write_simple_script/response_004.log
  174. +58 −14 tests/integration/mock/CodeActSWEAgent/test_edits/prompt_001.log
  175. +64 −20 tests/integration/mock/CodeActSWEAgent/test_edits/prompt_002.log
  176. +78 −27 tests/integration/mock/CodeActSWEAgent/test_edits/prompt_003.log
  177. +1 −1 tests/integration/mock/CodeActSWEAgent/test_edits/response_001.log
  178. +3 −1 tests/integration/mock/CodeActSWEAgent/test_edits/response_002.log
  179. +10 −1 tests/integration/mock/CodeActSWEAgent/test_edits/response_003.log
  180. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython/prompt_001.log
  181. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython/prompt_002.log
  182. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython_module/prompt_001.log
  183. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython_module/prompt_002.log
  184. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython_module/prompt_003.log
  185. +58 −14 tests/integration/mock/CodeActSWEAgent/test_ipython_module/prompt_004.log
  186. +58 −14 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/prompt_001.log
  187. +60 −17 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/prompt_002.log
  188. +63 −20 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/prompt_003.log
  189. +626 −0 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/prompt_004.log
  190. +2 −3 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/response_001.log
  191. +2 −2 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/response_002.log
  192. +3 −1 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/response_003.log
  193. +1 −0 tests/integration/mock/CodeActSWEAgent/test_write_simple_script/response_004.log
  194. +4 −4 tests/integration/regenerate.sh
  195. +62 −20 tests/integration/test_agent.py
  196. +194 −112 tests/unit/test_agent_skill.py
  197. +1 −4 tests/unit/test_arg_parser.py
  198. +171 −8 tests/unit/test_config.py
  199. +7 −12 tests/unit/test_event_stream.py
  200. +16 −21 tests/unit/test_ipython.py
  201. +85 −123 tests/unit/test_sandbox.py
3 changes: 0 additions & 3 deletions .github/.codecov.yml
Original file line number Diff line number Diff line change
@@ -17,6 +17,3 @@ coverage:
comment: false
github_checks:
annotations: false

ignore:
- "agenthub/SWE_agent/**" # SWE agent is deprecated
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -9,7 +9,14 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "daily"
open-pull-requests-limit: 20
- package-ecosystem: "npm" # See documentation for possible values
directory: "/frontend" # Location of package manifests
schedule:
interval: "daily"
open-pull-requests-limit: 20
- package-ecosystem: "npm" # See documentation for possible values
directory: "/docs" # Location of package manifests
schedule:
interval: "daily"
open-pull-requests-limit: 20
4 changes: 2 additions & 2 deletions .github/workflows/ghcr.yml
Original file line number Diff line number Diff line change
@@ -132,7 +132,7 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.11"]
sandbox: ["ssh", "exec", "local"]
sandbox: ["ssh", "local"]
steps:
- uses: actions/checkout@v4

@@ -156,7 +156,7 @@ jobs:

- name: Load sandbox image and run integration tests
env:
SANDBOX_TYPE: ${{ matrix.sandbox }}
SANDBOX_BOX_TYPE: ${{ matrix.sandbox }}
run: |
# Load the Docker image and capture the output
output=$(docker load -i /tmp/sandbox_image_amd64.tar)
2 changes: 1 addition & 1 deletion .github/workflows/review-pr.yml
Original file line number Diff line number Diff line change
@@ -55,7 +55,7 @@ jobs:
env:
LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SANDBOX_TYPE: exec
SANDBOX_BOX_TYPE: ssh
run: |
# Append path to launch poetry
export PATH="/github/home/.local/bin:$PATH"
2 changes: 1 addition & 1 deletion .github/workflows/run-unit-tests.yml
Original file line number Diff line number Diff line change
@@ -56,7 +56,7 @@ jobs:
brew install --HEAD colima
brew services start colima
brew install docker
colima start --network-address --arch x86_64
colima start --network-address --arch x86_64 --cpu=1 --memory=1
# For testcontainers to find the Colima socket
# https://github.com/abiosoft/colima/blob/main/docs/FAQ.md#cannot-connect-to-the-docker-daemon-at-unixvarrundockersock-is-the-docker-daemon-running
4 changes: 2 additions & 2 deletions .github/workflows/solve-issue.yml
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@ jobs:
echo "" >> task.txt
echo "BODY:" >> task.txt
echo "${ISSUE_BODY}" >> task.txt
- name: Set up environment
run: |
curl -sSL https://install.python-poetry.org | python3 -
@@ -50,7 +50,7 @@ jobs:
ISSUE_BODY: ${{ github.event.issue.body }}
LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SANDBOX_TYPE: exec
SANDBOX_BOX_TYPE: ssh
run: |
# Append path to launch poetry
export PATH="/github/home/.local/bin:$PATH"
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -212,4 +212,8 @@ cache
config.toml
config.toml.bak

containers/agnostic_sandbox
containers/agnostic_sandbox

# swe-bench-eval
image_build_logs
run_instance_logs
10 changes: 4 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -12,15 +12,15 @@ There are many ways that you can contribute:

## Understanding OpenDevin's CodeBase

In order to understand the codebase, please refer to the README in each module:
To understand the codebase, please refer to the README in each module:
- [frontend](./frontend/README.md)
- [agenthub](./agenthub/README.md)
- [evaluation](./evaluation/README.md)
- [opendevin](./opendevin/README.md)
- [server](./opendevin/server/README.md)

When you write code, it is also good to write tests. Please navigate to the `tests` folder to see existing test suites.
At the moment, we have two kinds of tests: `unit` and `integration`. Please refer to the README for each test suite. These tests also run on github's continuous integration to ensure quality of the project.
At the moment, we have two kinds of tests: `unit` and `integration`. Please refer to the README for each test suite. These tests also run on GitHub's continuous integration to ensure quality of the project.

## Sending Pull Requests to OpenDevin

@@ -77,7 +77,7 @@ git push origin my_branch

### 6. Open a Pull Request

* On Github, go to the page of your forked repository, and create a Pull Request:
* On GitHub, go to the page of your forked repository, and create a Pull Request:
- Click on `Branches`
- Click on the `...` beside your branch and click on `New pull request`
- Set `base repository` to `OpenDevin/OpenDevin`
@@ -96,7 +96,7 @@ As described [here](https://github.com/commitizen/conventional-commit-types/blob
- `feat`: A new feature
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- `style`: Changes that do not affect the meaning of the code (white space, formatting, missing semicolons, etc.)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `perf`: A code change that improves performance
- `test`: Adding missing tests or correcting existing tests
@@ -111,8 +111,6 @@ For example, a PR title could be:

You may also check out previous PRs in the [PR list](https://github.com/OpenDevin/OpenDevin/pulls).

As described [here](https://github.com/OpenDevin/OpenDevin/labels), we have created several labels. Every PR should be tagged with the corresponding labels.

### 2. Pull Request description
- If your PR is small (such as a typo fix), you can go brief.
- If it contains a lot of changes, it's better to write more details.
31 changes: 21 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ FRONTEND_PORT = 3001
DEFAULT_WORKSPACE_DIR = "./workspace"
DEFAULT_MODEL = "gpt-4o"
CONFIG_FILE = config.toml
PRECOMMIT_CONFIG_PATH = "./dev_config/python/.pre-commit-config.yaml"
PRE_COMMIT_CONFIG_PATH = "./dev_config/python/.pre-commit-config.yaml"
PYTHON_VERSION = 3.11

# ANSI color codes
@@ -28,7 +28,7 @@ ifeq ($(INSTALL_DOCKER),)
endif
@$(MAKE) -s install-python-dependencies
@$(MAKE) -s install-frontend-dependencies
@$(MAKE) -s install-precommit-hooks
@$(MAKE) -s install-pre-commit-hooks
@$(MAKE) -s build-frontend
@echo "$(GREEN)Build completed successfully.$(RESET)"

@@ -169,15 +169,15 @@ install-frontend-dependencies:
npm run make-i18n
@echo "$(GREEN)Frontend dependencies installed successfully.$(RESET)"

install-precommit-hooks:
install-pre-commit-hooks:
@echo "$(YELLOW)Installing pre-commit hooks...$(RESET)"
@git config --unset-all core.hooksPath || true
@poetry run pre-commit install --config $(PRECOMMIT_CONFIG_PATH)
@poetry run pre-commit install --config $(PRE_COMMIT_CONFIG_PATH)
@echo "$(GREEN)Pre-commit hooks installed successfully.$(RESET)"

lint-backend:
@echo "$(YELLOW)Running linters...$(RESET)"
@poetry run pre-commit run --files opendevin/**/* agenthub/**/* evaluation/**/* --show-diff-on-failure --config $(PRECOMMIT_CONFIG_PATH)
@poetry run pre-commit run --files opendevin/**/* agenthub/**/* evaluation/**/* --show-diff-on-failure --config $(PRE_COMMIT_CONFIG_PATH)

lint-frontend:
@echo "$(YELLOW)Running linters for frontend...$(RESET)"
@@ -208,11 +208,10 @@ start-frontend:
@echo "$(YELLOW)Starting frontend...$(RESET)"
@cd frontend && VITE_BACKEND_HOST=$(BACKEND_HOST) VITE_FRONTEND_PORT=$(FRONTEND_PORT) npm run start

# Run the app
run:
@echo "$(YELLOW)Running the app...$(RESET)"
# Common setup for running the app (non-callable)
_run_setup:
@if [ "$(OS)" = "Windows_NT" ]; then \
echo "$(RED)`make run` is not supported on Windows. Please run `make start-frontend` and `make start-backend` separately.$(RESET)"; \
echo "$(RED) Windows is not supported, use WSL instead!$(RESET)"; \
exit 1; \
fi
@mkdir -p logs
@@ -221,9 +220,21 @@ run:
@echo "$(YELLOW)Waiting for the backend to start...$(RESET)"
@until nc -z localhost $(BACKEND_PORT); do sleep 0.1; done
@echo "$(GREEN)Backend started successfully.$(RESET)"

# Run the app (standard mode)
run:
@echo "$(YELLOW)Running the app...$(RESET)"
@$(MAKE) -s _run_setup
@cd frontend && echo "$(BLUE)Starting frontend with npm...$(RESET)" && npm run start -- --port $(FRONTEND_PORT)
@echo "$(GREEN)Application started successfully.$(RESET)"

# Run the app (WSL mode)
run-wsl:
@echo "$(YELLOW)Running the app in WSL mode...$(RESET)"
@$(MAKE) -s _run_setup
@cd frontend && echo "$(BLUE)Starting frontend with npm (WSL mode)...$(RESET)" && npm run dev_wsl -- --port $(FRONTEND_PORT)
@echo "$(GREEN)Application started successfully in WSL mode.$(RESET)"

# Setup config.toml
setup-config:
@echo "$(YELLOW)Setting up config.toml...$(RESET)"
@@ -308,4 +319,4 @@ help:
@echo " $(GREEN)help$(RESET) - Display this help message, providing information on available targets."

# Phony targets
.PHONY: build check-dependencies check-python check-npm check-docker check-poetry pull-docker-image install-python-dependencies install-frontend-dependencies install-precommit-hooks lint start-backend start-frontend run setup-config setup-config-prompts help
.PHONY: build check-dependencies check-python check-npm check-docker check-poetry pull-docker-image install-python-dependencies install-frontend-dependencies install-pre-commit-hooks lint start-backend start-frontend run run-wsl setup-config setup-config-prompts help
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -64,7 +64,7 @@ docker run -it \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name opendevin-app-$(date +%Y%m%d%H%M%S) \
ghcr.io/opendevin/opendevin:0.6.2
ghcr.io/opendevin/opendevin:0.7
```

You'll find OpenDevin running at [http://localhost:3000](http://localhost:3000) with access to `./workspace`. To have OpenDevin operate on your code, place it in `./workspace`.
Loading