* improve file editing prompts and unit test
converted most raise calls to a _output_error call in file_ops.py
* tweaks in test_agent_skill.py wrt to SEP separator
* tweaked the separator
* remove server runtime remnants and TEST_RUNTIME references
* restore use of TEST_RUNTIME args and variables
* fix integration tests
* added hint to properly escape docstrings
* revert latest prompt change
---------
Co-authored-by: Xingyao Wang <xingyao6@illinois.edu>
* switch default to eventstream runtime
* remove pull docker from makefile
* fix unittest
* fix file store path
* try deprecate server runtime
* remove persist sandbox
* move file utils
* remove server runtime related workflow
* remove unused method
* attempt to remove the reliance on filestore for BE
* fix async for list file
* fix list_files to post
* fix list files
* add suffix to directory
* make sure list file returns abs path;
make sure other backend endpoints accpets abs path
* remove server runtime test workflow
* set git config in runtime
* Mention FORCE_REGENERATE var in doc
* Update tests/integration/README.md
---------
Co-authored-by: Boxuan Li <liboxuan@connect.hku.hk>
Co-authored-by: Yufan Song <33971064+yufansong@users.noreply.github.com>
* Exit regenerate.sh upon common known errors
* More fixes
* Remove mention of transient issue
* Use tmp file instead of tty
* Remove redundant cleanup
* Fix AgentRejectAction handling
* Add ManagerAgent to integration tests
* Fix regenerate.sh
* Fix merge
* Update README for micro-agents
* Add test reject to regenerate.sh
* regenerate.sh: Add support for running a specific test and/or agent
* Refine reject schema, and allow ManagerAgent to handle reject
* Add test artifacts for test_simple_task_rejection
* Fix manager agent tests
* Fix README
* test_simple_task_rejection: check final agent state
* Integration test: exit if mock prompt not found
* Update test_simple_task_rejection tests
* Fix test_edits test artifacts after prompt update
* Fix ManagerAgent test_edits
* WIP
* Fix tests
* update test_edits for ManagerAgent
* Skip local sandbox for reject test
* Fix test comparison
* Update README.md
* Fix WORKSPACE_MOUNT_PATH_IN_SANDBOX variable in regenerate.sh
* Regenerate prompts without calling real LLM
* Disable pytest warning capture
* Change planner agent prompt by a bit for demo
* Regenerate prompt files following prompt changes
* doc: elaborate on FORCE_USE_LLM
* Add another prompt change to monologue_agent for demo purpose
* Regenerate prompts with FORCE_USE_LLM=true
---------
Co-authored-by: Yufan Song <33971064+yufansong@users.noreply.github.com>
* regenerate.sh: Allow testing on a specific agent and/or test
* Check agent finish state
* rengerate.sh: Rerun after fixing the prompts
* Fix SWEAgent test_write_simple_script
* Add more help message
* Add a known issue to README.md
* regenerate.sh: Fix help message typo
* Fix a typo in README
* Fix edit hack for multiple edits in same command
This PR changes ([\s\S]*) to ([\s\S]*?) to make the capturing
group non-greedy. This change ensures that the regex captures
the smallest set of characters that extends up to the first
end_of_edit it encounters, rather than extending across multiple
edit commands.
Without the fix, a bash command consisting of multiple edits
would be corrupt and lead to unexpected edit results.
* 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
* Add SANDBOX_WORKSPACE_DIR into config
* Add SANDBOX_WORKSPACE_DIR into config
* fix occurence of /workspace
* fix permission issue with /workspace
* use python to implement execute_cli to avoid stdin escape issue
* add IPythonRunCellAction and get it working
* wait until jupyter is avaialble
* support plugin via copying instead of mounting
* add agent talk action
* support follow-up user language feedback
* add __str__ for action to be printed better
* only print PLAN at the beginning
* wip: update codeact agent
* get rid the initial messate
* update codeact agent to handle null action;
add thought to bash
* dispatch thought for RUN action as well
* fix weird behavior of pxssh where the output would not flush correctly
* make ssh box can handle exit_code properly as well
* 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
* 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
* add wip prompt
* fix mount_dir for ssh_box
* update prompt
* fix mount_dir for ssh_box
* default to use host network
* default to use host network
* move prompt to a separate file
* fix swe-tool plugins;
add missing _split_string
* remove hostname from sshbox
* update the prompt with edit functionality
* fix swe-tool plugins;
add missing _split_string
* add awaiting into status bar
* fix the bug of additional send event
* remove some print action
* move logic to config.py
* remove debugging comments
* make host network as default
* make WORKSPACE_MOUNT_PATH as abspath
* implement execute_cli via file cp
* Revert "implement execute_cli via file cp"
This reverts commit 06f0155bc17d1f99097e71b83b2143f6e8092654.
* add codeact dependencies to default container
* add IPythonRunCellObservation
* add back cache dir and default to /tmp
* make USE_HOST_NETWORK a bool
* revert use host network to false
* add temporarily fix for IPython RUN action
* update prompt
* revert USE_HOST_NETWORK to true since it is not affecting anything
* attempt to fix lint
* remove newline
* fix jupyter execution server
* add `thought` to most action class
* fix unit tests for current action abstraction
* support user exit
* update test cases with the latest action format (added 'thought')
* fix integration test for CodeActAGent by mocking stdin
* only mock stdin for tests with user_responses.log
* remove -exec integration test for CodeActAgent since it is not supported
* remove specific stop word
* fix comments
* improve clarity of prompt
* fix py lint
* fix integration tests
* sandbox might failed in chown due to mounting, but it won't be fatal
* update debug instruction for sshbox
* fix typo
* get RUN_AS_DEVIN and network=host working with app sandbox
* get RUN_AS_DEVIN and network=host working with app sandbox
* attempt to fix the workspace base permission
* sandbox might failed in chown due to mounting, but it won't be fatal
* update sshbox instruction
* remove default user id since it will be passed in the instruction
* revert permission fix since it should be resolved by correct SANDBOX_USER_ID
* the permission issue can be fixed by simply provide correct env var
* remove log
* set sandbox user id to getuid by default
* move logging to initializer
* make the uid consistent across host, app container, and sandbox
* remove hostname as it causes sudo issue
* fix permission of entrypoint script
* make the uvicron app run as host user uid for jupyter plugin
* add warning message
* update dev md for instruction of running unit tests
* add back unit tests
* revert back to the original sandbox implementation to fix testcases
* revert use host network
* get docker socket gid and usermod instead of chmod 777
* allow unit test workflow to find docker.sock
* make sandbox test working via patch
* fix arg parser that's broken for some reason
* try to fix app build disk space issue
* fix integration test
* Revert "fix arg parser that's broken for some reason"
This reverts commit 6cc89611337bb74555fd16b4be78681fb7e36573.
* update Development.md
* cleanup intergration tests & add exception for CodeAct+execbox
* fix config
* implement user_message action
* fix doc
* fix event dict error
* fix frontend lint
* revert accidentally changes to integration tests
* revert accidentally changes to integration tests
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
Co-authored-by: Robert Brennan <contact@rbren.io>
* Add integration test framework with mock llm
* Fix MonologueAgent and PlannerAgent tests
* Remove adhoc logging
* Use existing logs
* Fix SWEAgent and PlannerAgent
* Check-in test log files
* conftest: look up under test name folder only
* Add docstring to conftest
* Finish dev doc
* Avoid non-determinism
* Remove dependency on llm embedding model
* Init embedding model only for MonologueAgent
* Add adhoc fix for sandbox discrepancy
* Test ssh and exec sandboxes
* CI: fix missing sandbox type
* conftest: Remove hack
* Reword comment for TODO