* feat: lazy launching browser; browser optional for diffrent agents.
* style: lint
* fix: integration test fail due to browser not started.
* fix: run by cli and integration test failed.
* fix: lint
* fix: lint
---------
Co-authored-by: Graham Neubig <neubig@gmail.com>
* Refactor monologue to use the messages in state history
* add messages, clean up
* fix monologue
* update integration tests
* move private method
* update SWE agent to use the history from State
* integration tests for SWE agent
* rename monologue to initial_thoughts, since that is what it is
* Feat: add stream output to exec_run
* Using command timeout to control the exec_box's timeout.
* add bash -c to source command to compatible for sh.
Signed-off-by: ifuryst <ifuryst@gmail.com>
* Feat: add stream output to SSHBox execute
Signed-off-by: ifuryst <ifuryst@gmail.com>
* fix the test case fail.
Signed-off-by: ifuryst <ifuryst@gmail.com>
* fix the test case import wrong path for method.
Signed-off-by: ifuryst <ifuryst@gmail.com>
---------
Signed-off-by: ifuryst <ifuryst@gmail.com>
* Update msg_stack.py
1、[msg.to_dict() for msg in msgs], msg is not instanse of Message, it not has a func of to_dict(), so msg.to_dict() will accur JSONDecodeError;
2、json.dump(new_data, file), it appends new_data to the end of the file instead of overwriting from the beginning, Hence, it's necessary to first perform file.seek(0) and file.truncate().
* Update opendevin/server/session/msg_stack.py
---------
Co-authored-by: Yufan Song <33971064+yufansong@users.noreply.github.com>
* move towards event stream
* refactor agent state changes
* move agent state logic
* fix callbacks
* break on finish
* closer to working
* change frontend to accomodate new flow
* handle start action
* fix locked stream
* revert message
* logspam
* no async on close
* get rid of agent_task
* fix up closing
* better asyncio handling
* sleep to give back control
* fix key
* logspam
* update frontend agent state actions
* fix pause and cancel
* delint
* fix map
* delint
* wait for agent to finish
* fix unit test
* event stream enums
* fix merge issues
* fix lint
* fix test
* fix test
* add user message action
* add user message action
* fix up user messages
* fix main.py flow
* refactor message waiting
* lint
* fix test
* fix test
* feat: support controlling agent task state.
* feat: add agent task state to agent status bar.
* feat: add agent task control bar to FE.
* Remove stop agent task action.
* Merge pause and resume buttons into one button; Add loading and disabled status for action buttons.
* Apply suggestions from code review
---------
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
* feat: add agent manager to manage all agents;
* extract the host ssh port to prevent conflict.
* clean all containers with prefix is sandbox-
* merge from upstream/main
* merge from upstream/main
* Update frontend/src/state/settingsSlice.ts
* Update opendevin/sandbox/ssh_box.py
* Update opendevin/sandbox/exec_box.py
---------
Co-authored-by: Robert Brennan <accounts@rbren.io>
* Add logging config for the app and for llm debug
* - switch to python, add special llm logger
- add logging to sandbox.py
- add session.py
- add a directory per session
- small additions for AgentController
* - add sys log, but try to exclude litellm; log llm responses as json
* Update opendevin/_logging.py
Co-authored-by: Anas DORBANI <95044293+dorbanianas@users.noreply.github.com>
* - use standard file naming
- quick pass through a few more files
* fix ruff
* clean up
* mypy types
* make mypy happy
---------
Co-authored-by: Anas DORBANI <95044293+dorbanianas@users.noreply.github.com>
* feat: websocket connection management and sandbox bound to session.
* fix: set default value to id
* feat: add session management.
* fix for mypy
* fix for mypy
* fix the pnpm-lock.
* fix the default model is empty will throw error.