* mypy is invaluable
* fix config, add test
* Add new-style toml support
* add singleton, small doc fixes
* fix some cases of loading toml, clean up, try to make it clearer
* Add defaults_dict for UI
* allow config to be mutable
error handling
fix toml parsing
* remove debug stuff
* Adapt Makefile
* Add defaults for temperature and top_p
* update to CodeActAgent
* comments
* fix unit tests
* implement groups of llm settings (CLI)
* fix merge issue
* small fix sandboxes, small refactoring
* adapt LLM init to accept overrides at runtime
* reading config is enough
* Encapsulate minimally embeddings initialization
* agent bug fix; fix tests
* fix sandboxes tests
* refactor globals in sandboxes to properties
* Feat: add lint frontend and lint all to Makefile.
* style codes.
* Remove redundant target.
---------
Co-authored-by: Jim Su <jimsu@protonmail.com>
Co-authored-by: Robert Brennan <accounts@rbren.io>
* add a single-threaded server serving browsergym
* update poetry
* update browser page content
* add import to make sure browsergym environments are registered properly
* remove flask server, use multiprocess impl and Pipe
* fix
* refactor BrowserEnv
* update browser action and obs to include more complete info
* fix screenshot
* update poetry lock
* add playwright install to workflow
* update
* add better html to text conversion
* update for better text conversion to maintain parity with the current handling of browseurlaction
* update
* update poetry
* update multiprocessing mp
* fix multiprocessing
* update
* update github workflow
---------
Co-authored-by: Xingyao Wang <xingyao6@illinois.edu>
* ci/lint: fix calling Ruff's format
* Transition for ruff lint. Only checking the modified files.
---------
Co-authored-by: ifuryst <ifuryst@gmail.com>
* build: when running in dev mode, reload the poetry server whenever a file changes
* only reload for specific directories
---------
Co-authored-by: Jim Su <jimsu@protonmail.com>
* initialize plugin definition
* initialize plugin definition
* simplify mixin
* further improve plugin mixin
* add cache dir for pip
* support clean up cache
* add script for setup jupyter and execution server
* integrate JupyterRequirement to ssh_box
* source bashrc at the end of plugin load
* add execute_cli that accept code via stdin
* make JUPYTER_EXEC_SERVER_PORT configurable via env var
* increase background cmd sleep time
* Update opendevin/sandbox/plugins/mixin.py
Co-authored-by: Robert Brennan <accounts@rbren.io>
* add mixin to base class
* make jupyter requirement a dataclass
* source plugins only when >0 requirements
* add `sandbox_plugins` for each agent & have controller take care of it
* update build.sh to make logs available in /opendevin/logs
* switch to use config for lib and cache dir
* fix permission issue with /workspace
* use python to implement execute_cli to avoid stdin escape issue
* wait until jupyter is avaialble
* support plugin via copying instead of mounting
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
* This has been a headache for a long time, and we had #1071 and #1100 with the hope to fix the inconsistent behaviour across linters and environments. However, we recently found out that double-quote-string-fixer plugin in pre-commit-hook has inconsistent behaviour on python 3.11 and 3.12. See discussion here. This is sad because while this plugin enforces single quote behaviour with 3.11, it doesn't always enforce so with 3.12. Specifically, with fstr syntax, this plugin allows both single quotes and double quotes with python 3.12.
The problem is, some developers have black linter installed/integrated with their IDE, which is probably the most popular linter in python world (ranked by GitHub stars). This linter insists on always using double quotes. Now we have black and double-quote-string-fixer fight each other (iff the developer uses python 3.12) for some quotes (fstr syntax).
After a lot of research, I couldn't find a way to enforce single quote behaviour without introducing a new dependency, flake8, together with a plugin for it to enforce quotes' behavior. I believe it's better off introducing the more popular black if we have to introduce a new linter. Since black and autopep8 sometimes fight each other, and they mostly overlap, I further remove autopep8.
The unfortunate consequence of this PR is that I had to revert all single quotes back to double quotes. This might cause some inconvenience to existing PRs as they have to resolve conflicts, but I believe the headache will be gone soon. That being said, I am open to abandon this PR if anyone has a better idea to solve the headache.
* Remove black
* Prevent black from changing quotes
* Use flake8 to enforce single quotes
* Fix quotes in config.py
* Add back autopep8
* Add make lint to run linters
* Add the ability to set LLM_BASE_URL with make setup-config
* Add hint for LLM_BASE_URL in make setup-config
* Adjust indentation after merge
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
* create the pyproject file
* Fix the pyproject.toml file
* Update Makefile
* adapt makefile
* fix some execution issues
* Untrack lock files and wait for the backend to get start before frontend
* Remove LangChain dependencies
* Add github action for pytest
* add missing dependency
* rebase and fix the versions adding lock file
* add torch and pymupdfb deps
* some conflicts fixes
* Add dependencies evaluation group
* add poetry.lock
* Fix unexpected operator
---------
Co-authored-by: Robert Brennan <contact@rbren.io>
* Updating memory for monologue agent to fix base_url being used with OpenAIEmbedding by accident, added default text-embedding-ada-002 to monologue agent memory for OpenAIEmbeddings, added more enviroment variable configurations to setup-config in make file
* adding indent
* chore: use pnpm to manage frontend deps
* typo: change content of tips
* docs: update node.js require version & replacement installation link
* feat: detect the Node.js version to ensure corepack is supported
* typo: remove chinese comment
* fix: lint CI config, use pnpm to install dependencies
* fix: nextui style error when using pnpm
* fix: ci setup pnpm cwd
* fix: frontend lint ci install deps crash
* fix: ci lint frontend missing package.json path
* fix: frontend lint ci add cache-dependency-path prop
* fix: make run on Windows
* Update Makefile
Co-authored-by: Graham Neubig <neubig@gmail.com>
---------
Co-authored-by: Graham Neubig <neubig@gmail.com>