* add initial version of swe-agent plugin;
* rename swe cursors
* split setup script into two and create two requirements
* print SWE-agent command documentation
* update swe-agent to default to no custom docs
* update dockerfile with dependency from swe-agent
* make env setup a separate script for .bashrc source
* fix swe-tool plugins;
add missing _split_string
* remove import for temporarily fix (will add back in another pr)
* 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>
* CI: Add autopep8 linter
Currently, we have autopep8 as part of pre-commit-hook. To ensure
consistent behaviour, we should have it in CI as well.
Moreover, pre-commit-hook contains a double-quote-string-fixer hook
which changes all double quotes to single quotes, but I do observe
some PRs with massive changes that do the opposite way. I suspect
that these authors 1) disable or circumvent the pre-commit-hook,
and 2) have other linters such as black in their IDE, which
automatically change all single quotes to double quotes. This
has caused a lot of unnecessary diff, made review really hard,
and led to a lot of conflicts.
* Use -diff for autopep8
* autopep8: Freeze version in CI
* Ultimate fix
* Remove pep8 long line disable workaround
* Fix lint.yml
* Fix all files under opendevin and agenthub
* doc: Guide for using local LLM with Ollama
* forgot to delete print statement
* typos
* Updated guide - new working method
* Move to docs folder
* Fixed front end overwrite local model name
* Update llm.py
* Delete docs/examples/images/example.png
deleted example.png
* Documentation of agent differences
* rename examples to documentation
* Docstrings for all agents
* typo fix
* typo fixes
* Typo fixes
* more typo fixes
* typo fix
* typo fixes
* typos fixed
* Typo fixes
* top 10 list
* typo fix
* typo fix
* typos to the moon
* typos fixed
* typo fix
* typo fix
* anotha one
* The rest of the typos
* Corrected agent descriptions
* Agents markdown updated
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
* rearrange workspace_dir and max_step as arguments to controller
* remove unused output
* abstract each action into dataclass
* move actions
* fix action import
* move cmd manager and change method to private
* move controller
* rename action folder
* add state
* a draft of Controller & new agent abstraction
* add agent actions
* remove controller file
* add observation to perform a refractor on langchains agent
* revert to make this compatible via translation
* fix typo and translate error
* add error to observation
* index thought as dict
* refractor controller
* fix circular dependency caused by type hint
* add runnable attribute to agent
* add mixin to denote executable
* change baseclass
* make file read/write action compatible w/ docker directory
* remove event
* fix some merge issue
* fix sandbox w/ permission issue
* cleanup history abstraction since langchains agent is not really using it
* tweak to make langchains agent working
* make all actions return observation
* fix missing import
* add echo action for agent
* add error code to cmd output obs
* make cmd manager returns cmd output obs
* fix codeact agent to make it work
* fix all ruff issue
* fix mypy
* add import agenthub back
* add message for Action attribute (migrate from previous event)
* fix typo
* fix instruction setting
* fix instruction setting
* attempt to fix session
* ruff fix
* add .to_dict method for base and observation
* add message for recall
* try to simplify the state_updated_info with tuple of action and obs
* update_info to Tuple[Action, Observation]
* make codeact agent and langchains compatible with Tuple[Action, Observation]
* fix ruff
* fix ruff
* change to base path to fix minimal langchains agent
* add NullAction to potentially handle for chat scenario
* Update opendevin/controller/command_manager.py
Co-authored-by: Robert Brennan <accounts@rbren.io>
* fix event args
* set the default workspace to "workspace"
* make directory relative (so it does not show up to agent in File*Action)
* fix typo
* await to yield for sending observation
* fix message format
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
* server working with agent library
* update readme
* add messages to events
* factor out steps
* fix websocket messages
* allow user to run arbitrary actions
* allow user to run commands before a task is started
* fix main.py
* check JSON
* handle errors in controller better
* fix memory issue
* better error handling and task cancellation
* fix monologue len
* fix imports
* remove server from lint check
* fix lint issues
* fix lint errors
* don't modify directories
* oops typo
* dev_config/python
* add config to CI
* bump CI python to 3.10
* 3.11?
* del actions/
* add suggestions
* delete unused code
* missed some
* oops missed another one
* remove a file
* minimal docker sandbox
* make container_image as an argument (fall back to ubuntu);
increase timeout to avoid return too early for long running commands;
* add a minimal working (imperfect) example
* fix typo
* change default container name
* attempt to fix "Bad file descriptor" error
* handle ctrl+D
* add Python gitignore
* push sandbox to shared dockerhub for ease of use
* move codeact example into research folder
* add README for opendevin
* change container image name to opendevin dockerhub
* move folder; change example to a more general agent
* update Message and Role
* update docker sandbox to support mounting folder and switch to user with correct permission
* make network as host
* handle erorrs when attrs are not set yet
* convert codeact agent into a compatible agent
* add workspace to gitignore
* make sure the agent interface adjustment works for langchain_agent